Tim Northover
bb5174246b
Fix edge cases of ARM shift operands in arith instructions.
...
As before with load instructions, oddities like "asr #32 ", "rrx" could
be printed incorrectly.
Patch by Chris Lidbury.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164456 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 11:18:19 +00:00
Tim Northover
93c7c449a1
Fix the handling of edge cases in ARM shifted operands.
...
This patch fixes load/store instructions to handle less common cases
like "asr #32 ", "rrx" properly throughout the MC layer.
Patch by Chris Lidbury.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164455 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 11:18:12 +00:00
Michael Liao
23bd47c2d6
Fix 16-bit atomic inst encoding and keep pseudo-inst starting with '#'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164453 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 05:41:15 +00:00
Michael Liao
730b9dd2ce
Fix typo in r164357
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164452 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 03:39:42 +00:00
Andrew Trick
9264988311
Machine Model (-schedmodel only). Added SchedAliases.
...
Allow subtargets to tie SchedReadWrite types to processor specific
sequences or variants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164451 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 02:24:21 +00:00
Jordan Rose
a2df2ba16a
Add llvm::getOrdinalSuffix to get the appropriate -st, -nd, -rd, -th suffix.
...
Used by clang to print parameter indexes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164440 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 01:24:21 +00:00
Jordan Rose
f5091b476c
Casting: assert that pointer arguments to isa<> are non-null.
...
This silences several analyzer warnings within LLVM, and provides a slightly
nicer crash experience when someone calls isa<>, cast<>, or dyn_cast<> with
a null pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164439 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 01:24:18 +00:00
Jordan Rose
3bbdddf527
DenseMap: assert that we have found a bucket before we try to insert into it.
...
This silences literally dozens of analyzer warnings on LLVM (since DenseMap
is such a commonly-used class).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164438 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 01:24:16 +00:00
Akira Hatanaka
ef5fc952e8
MIPS DSP: Add immediate leaves.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164435 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 00:07:12 +00:00
Akira Hatanaka
67032b27cd
MIPS DSP: Add predicates and instruction template.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164434 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-22 00:06:06 +00:00
Akira Hatanaka
b430cecc0e
Add MIPS DSP register classes. Set actions of DSP vector operations and override
...
TargetLowering's callback functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164431 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:58:31 +00:00
Akira Hatanaka
6fad5e742d
SelectionDAG node enums for MIPS DSP nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164430 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:52:47 +00:00
Akira Hatanaka
1024f290d1
Add MIPS accumulator and DSP control registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164429 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:48:37 +00:00
Akira Hatanaka
a9adbf6df7
Add flags and feature bits for mips dsp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164428 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:41:49 +00:00
Chandler Carruth
d54a6b56a9
Fix a case where the new SROA pass failed to zap dead operands to
...
selects with a constant condition. This resulted in the operands
remaining live through the SROA rewriter. Most of the time, this just
caused some dead allocas to persist and get zapped by later passes, but
in one case found by Joerg, it caused a crash when we tried to *promote*
the alloca despite it having this dead use. We already have the
mechanisms in place to handle this, just wire select up to them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164427 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:36:40 +00:00
Eric Christopher
c69bdadac9
Add an --enable-backtraces option to configure to determine
...
whether or not we want to print out backtrace information. Useful
for libraries that don't need backtrace information on a crash.
rdar://11844710
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164426 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:03:29 +00:00
Dan Gohman
c912494855
Add an MDBuilder utility for creating !tbaa.struct nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164425 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 23:00:37 +00:00
Michael J. Spencer
0543c147df
[CMake] Respect LLVM_BUILD_RUNTIME.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164424 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 22:49:06 +00:00
Chad Rosier
d717a066c6
[ms-inline asm] Expose the mnemonicIsValid() function in the AsmParser.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164420 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 22:21:26 +00:00
Eric Christopher
7b451cf356
Have the DbgVariable "isArtificial" and "isObjectPointer" not
...
care about it being an argument variable so that we can decide
that captured block and lambda vars that don't happen to
be arguments could be an argument pointer.
Add the object pointer for one case onto the subprogram die.
rdar://12001329
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164419 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 22:18:52 +00:00
Chad Rosier
7d4e989da9
Add comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164415 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 21:08:46 +00:00
Chad Rosier
4a6203a31b
Add comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164414 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 20:51:43 +00:00
Evan Cheng
bb36a43872
Fix a significant recent(?) regression. StackSlotColoring no longer did anything
...
because LiveStackAnalysis was not preserved by VirtRegWriter. This caused
big stack usage regression in some cases.
rdar://12340383
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164408 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 20:04:28 +00:00
Sean Silva
fdb6ec34cd
docs: Fix long-standing typo in yaml2obj.rst.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164407 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 19:48:16 +00:00
Chad Rosier
6018944afd
Whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164406 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 19:25:59 +00:00
Dan Gohman
ee9f726749
Say "bytes" instead of "address units", since that's what the
...
rest of LangRef uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164402 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 18:41:30 +00:00
Dan Gohman
273a92eb0a
Document the new !tbaa.struct metadata.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164398 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 18:21:48 +00:00
David Blaikie
b890e9fc66
Add missing 'to' and rephrase an explanation of GCC's assumptions.
...
Wordsmithing by Matt Beaumont-Gay in response to r164389.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164395 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 18:03:02 +00:00
David Blaikie
67bf429a6a
Document "do not use defaults in covered switch-over-enum" coding standard.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164389 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 17:47:36 +00:00
Benjamin Kramer
28aff84ceb
LoopIdiom: Give up when the loop is not in canonical form.
...
We rely on it when doing the transforms. This can happen when there is an
indirectbr in the loop.
Fixes PR13892.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164383 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 17:27:23 +00:00
Chad Rosier
e5e674ba11
[fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
...
non-aligned i32 loads/stores.
rdar://12304911
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164381 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 16:58:35 +00:00
Benjamin Kramer
e5bd3cf000
InstCombine: Make sure we use the pre-zext type when creating a constant of a value that is zext'd.
...
Fixes PR13250.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164377 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 16:26:41 +00:00
Bill Wendling
30b483c940
Encapsulate the "construct*AlignmentFromInt" functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164373 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 16:07:28 +00:00
Michael Liao
ba4388656c
Fix a typo in r164357
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164372 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 16:03:03 +00:00
Dmitri Gribenko
9d227af8f7
Clarify comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164371 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 15:26:34 +00:00
Bill Wendling
ef99fe8efa
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. Now with fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164370 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 15:26:31 +00:00
Benjamin Kramer
122f5e5a5b
BitcodeReader: Correctly insert blockaddress constant referring to a already parsed function.
...
We inserted a placeholder that was never replaced because the function was
already visited. Assert that all placeholders have been resolved when tearing
down the bitcode reader.
Fixes PR13895.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164369 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 14:34:31 +00:00
Alexey Samsonov
01fa41a106
Fix SymbolRef::getAddress implementation for ELF. The 'value' field in symbol table entry should be treated differently for relocatable and relocated files. This patch fixes symbol addresses printed by llvm-nm for executables and shared objects.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164365 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 07:08:08 +00:00
NAKAMURA Takumi
f17422181f
llvm/test/CodeGen/X86/pr5145.ll: Tweak expressions to match for darwin target.
...
.LBB0_1: # Linux
LBB0_1: # Darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164362 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 05:19:19 +00:00
Andrew Trick
2f1d5d44c0
Cortex-A9 latency fixes (w/ -schedmodel only).
...
Quick review against the manual revealed a few obvious mistakes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164361 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 05:06:40 +00:00
Michael Liao
fe87c302aa
Add missing i8 max/min/umax/umin support
...
- Fix PR5145 and turn on test 8-bit atomic ops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164358 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 03:18:52 +00:00
Michael Liao
0838249a6a
Revise td of X86 atomic instructions
...
- Rewirte most atomic instructions in templates for both better
maintenance and future extensions, such as HLE in TSX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164357 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 03:00:17 +00:00
Sean Silva
258aeb5762
docs: Fix Sphinx warning over Atomics.rst.
...
Atomics.rst was not linked into the toctree.
Docs now build warning-free!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164356 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 02:46:32 +00:00
Sean Silva
5cc1e23247
docs: Fix Sphinx warning over yaml2obj.rst.
...
yaml2obj.rst was not included in the toctree
Input from Michael Spencer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 02:46:30 +00:00
NAKAMURA Takumi
b377635592
Mips16FrameLowering.cpp: Remove unused TII introduced in r164349. [-Wunused-variable]
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164354 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 02:21:30 +00:00
NAKAMURA Takumi
df03a28990
llvm/test/CodeGen/ARM/fast-isel.ll: Fix possible typos, s/@unaligned_i16_store/@unaligned_i16_load/g.
...
I guess this had apparently passed in +Asserts possibly due to verborsity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164350 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 01:15:05 +00:00
Akira Hatanaka
0fdf3b029b
Properly save and restore RA and Mips16 callee save registers S0,S1
...
Patch by Reed Kotler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164349 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 01:08:16 +00:00
Chad Rosier
3ca380d8d7
Testcase does not need to be this strict.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164347 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 00:47:08 +00:00
Chad Rosier
ba6aec2cf3
Add newline.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164346 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 00:43:18 +00:00
Chad Rosier
d70c98e884
[fast-isel] Fallback to SelectionDAG isel if we require strict alignment for
...
non-halfword-aligned i16 loads/stores.
rdar://12304911
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164345 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-21 00:41:42 +00:00