Chris Lattner
74681fab91
some random cleanups, no functionality change.
...
llvm-svn: 130237
2011-04-26 20:02:45 +00:00
Chris Lattner
b8cedffb8d
add an m_ConstantInt matching predicate that binds to a uint64_t, and add an m_OneUse()
...
predicate that matches if the subexpr has a single use.
llvm-svn: 130235
2011-04-26 19:50:39 +00:00
Jim Grosbach
77d45564c3
ARM and Thumb2 support for atomic MIN/MAX/UMIN/UMAX loads.
...
rdar://9326019
llvm-svn: 130234
2011-04-26 19:44:18 +00:00
Rafael Espindola
e238ffe4ba
Print the label if we will use it in debug_frame.
...
llvm-svn: 130232
2011-04-26 19:26:53 +00:00
Devang Patel
09b1585aac
Refactor code. Keep dwarf register operation selection logic at one place.
...
llvm-svn: 130231
2011-04-26 19:06:18 +00:00
Jakob Stoklund Olesen
c9cf507d93
Use the new TRI->getLargestLegalSuperClass hook to constrain register class inflation.
...
This has two effects: 1. We never inflate to a larger register class than what
the sub-target can handle. 2. Completely unconstrained virtual registers get the
largest possible register class.
llvm-svn: 130229
2011-04-26 18:52:36 +00:00
Jakob Stoklund Olesen
7a2dca07a8
Add a TRI::getLargestLegalSuperClass hook to provide an upper limit on register class inflation.
...
The hook will be used by the register allocator when recomputing register
classes after removing constraints.
Thumb1 code doesn't allow anything larger than tGPR, and x86 needs to ensure
that the spill size doesn't change.
llvm-svn: 130228
2011-04-26 18:52:33 +00:00
Benjamin Kramer
249006aad2
Force a triple on this test to unbreak windows buildbots.
...
llvm-svn: 130226
2011-04-26 18:47:43 +00:00
Devang Patel
b906474102
Fix an off by one error while accessing complex address element of a DIVariable.
...
This worked untill now because stars are aligned (i.e. num of complex address elments are always 0 or 2+ and when it is 2+ at least two elements are access together)
llvm-svn: 130225
2011-04-26 18:24:39 +00:00
Chris Lattner
a43e6b57a4
Improve the bail-out predicate to really only kick in when phi
...
translation fails. We were bailing out in some cases that would
cause us to miss GVN'ing some non-local cases away.
llvm-svn: 130206
2011-04-26 17:41:02 +00:00
Dan Gohman
fbb7ade7ae
Fast-isel support for simple inline asms.
...
llvm-svn: 130205
2011-04-26 17:18:34 +00:00
Oscar Fuentes
246a11f21c
Honor LLVM_BUILD_RUNTIME.
...
llvm-svn: 130199
2011-04-26 14:55:27 +00:00
Rafael Espindola
7503d15062
Add test for PR9743.
...
llvm-svn: 130198
2011-04-26 14:17:42 +00:00
Duncan Sands
45fa6cfbf4
Another example of a static table that wasn't marked static.
...
llvm-svn: 130193
2011-04-26 07:30:10 +00:00
Chris Lattner
37fec9f729
don't emit the symbol name twice for local bss and common
...
symbols. For example, don't emit:
.comm _i,4,2 ## @i
## @i
instead emit:
.comm _i,4,2 ## @i
llvm-svn: 130192
2011-04-26 06:14:13 +00:00
Nick Lewycky
6a72236e5f
Add cmakefiles to build profile_rt.so!
...
llvm-svn: 130191
2011-04-26 05:48:41 +00:00
Evan Cheng
73a9ae3388
Fix typo
...
llvm-svn: 130190
2011-04-26 04:57:37 +00:00
Rafael Espindola
59c3a084c6
Print all the moves at a given label instead of just the first one.
...
Remove previous DwarfCFI hack.
llvm-svn: 130187
2011-04-26 03:58:56 +00:00
Nick Lewycky
d4d9c257e0
Rename everything to follow LLVM style ... I think.
...
Add support for switch and indirectbr edges. This works by densely numbering
all blocks which have such terminators, and then separately numbering the
possible successors. The predecessors write down a number, the successor knows
its own number (as a ConstantInt) and sends that and the pointer to the number
the predecessor wrote down to the runtime, who looks up the counter in a
per-function table.
Coverage data should now be functional, but I haven't tested it on anything
other than my 2-file synthetic test program for coverage.
llvm-svn: 130186
2011-04-26 03:54:16 +00:00
Rafael Espindola
c115df57cc
No relocation produces a SLEB or ULEB, make sure they are handled in MC.
...
llvm-svn: 130181
2011-04-26 02:17:58 +00:00
Chris Lattner
bad294615e
Enhance MemDep: When alias analysis returns a partial alias result,
...
return it as a clobber. This allows GVN to do smart things.
Enhance GVN to be smart about the case when a small load is clobbered
by a larger overlapping load. In this case, forward the value. This
allows us to compile stuff like this:
int test(void *P) {
int tmp = *(unsigned int*)P;
return tmp+*((unsigned char*)P+1);
}
into:
_test: ## @test
movl (%rdi), %ecx
movzbl %ch, %eax
addl %ecx, %eax
ret
which has one load. We already handled the case where the smaller
load was from a must-aliased base pointer.
llvm-svn: 130180
2011-04-26 01:21:15 +00:00
Devang Patel
4969322bc4
Let dwarf writer allocate extra space in the debug location expression. This space, if requested, will be used for complex addresses of the Blocks' variables.
...
llvm-svn: 130178
2011-04-26 00:12:46 +00:00
Devang Patel
3da97b7d34
Rename a local variable.
...
llvm-svn: 130171
2011-04-25 23:05:21 +00:00
Devang Patel
e28211b031
Rename a method to match what it really does.
...
s/addVariableAddress/addFrameVariableAddress/g
llvm-svn: 130170
2011-04-25 23:02:17 +00:00
Devang Patel
b1b33d6569
Do not drop a variable's complex address if it is not based on frame base.
...
Observed this while reading code, so I do not have a test case handy here.
llvm-svn: 130167
2011-04-25 22:52:55 +00:00
Dan Gohman
6ff1c50bb5
Fix an iterator invalidation bug.
...
llvm-svn: 130166
2011-04-25 22:48:29 +00:00
Eric Christopher
2fbd7a6280
Make this test disable fast isel as it's not needed.
...
llvm-svn: 130165
2011-04-25 22:39:46 +00:00
Chris Lattner
efcac8f9f0
mark a large static table static. Pointed out by Michael Ilseman!
...
llvm-svn: 130160
2011-04-25 22:14:33 +00:00
Chris Lattner
e2e476dbdd
Improve adherence to general style, use "foo_t &x" instead of "foo_t& x"
...
llvm-svn: 130153
2011-04-25 21:02:12 +00:00
Chris Lattner
75652009a0
allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,
...
patch by Johannes Schaub!
llvm-svn: 130151
2011-04-25 20:58:50 +00:00
Chris Lattner
35166f3b22
add a missed bitfield instcombine.
...
llvm-svn: 130137
2011-04-25 18:44:26 +00:00
Akira Hatanaka
59b356bcc3
Lower BlockAddress node when relocation-model is static.
...
llvm-svn: 130131
2011-04-25 17:10:45 +00:00
Devang Patel
83eac5e134
A dbg.declare may not be in entry block, even if it is referring to an incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFunction.
...
llvm-svn: 130129
2011-04-25 16:33:52 +00:00
Benjamin Kramer
b2992c34b5
Make tests more useful.
...
lit needs a linter ...
llvm-svn: 130126
2011-04-25 10:12:01 +00:00
Chandler Carruth
74094b8d4a
Remove some hard coded CR-LFs. Some of these were the entire files, one of
...
these was just one line of a file. Explicitly set the eol-style property on the
files to try and ensure this fix stays.
llvm-svn: 130125
2011-04-25 07:11:23 +00:00
Duncan Sands
e4e802432c
Fix comment typo. Noticed by Liu.
...
llvm-svn: 130120
2011-04-25 06:21:43 +00:00
Rafael Espindola
a14f5303dd
Simplify the logic. Noticed by aKor.
...
llvm-svn: 130116
2011-04-24 19:55:34 +00:00
Rafael Espindola
8c824c73b6
Synchronize the conditions for producing a .cfi_startproc and a .cfi_endproc.
...
Fixes PR9787.
llvm-svn: 130115
2011-04-24 19:00:34 +00:00
Sebastian Redl
ef01c3c33f
Fix Target/ARM/Thumb1FrameLowering.h header guard.
...
llvm-svn: 130097
2011-04-24 15:47:01 +00:00
Sebastian Redl
0d36a0b806
Give MC/MCDisassembler/Disassembler.h a header guard.
...
llvm-svn: 130096
2011-04-24 15:46:56 +00:00
Sebastian Redl
5fea40be23
Give SplitKit.h a header guard.
...
llvm-svn: 130095
2011-04-24 15:46:51 +00:00
Sebastian Redl
69f3b52528
Give ImmutableIntervalMap.h an include guard.
...
llvm-svn: 130094
2011-04-24 15:46:46 +00:00
Jay Foad
cd76fe8e21
Fix an assert to check exactly what it says.
...
llvm-svn: 130093
2011-04-24 14:30:00 +00:00
Mikhail Glushenkov
e2c4cc8224
Add a TODO.
...
llvm-svn: 130092
2011-04-24 14:17:41 +00:00
Mikhail Glushenkov
0d5d2e214c
Regenerate.
...
llvm-svn: 130091
2011-04-24 14:17:37 +00:00
Mikhail Glushenkov
37d5b582ea
Remove all references to plugins from the LLVMC docs.
...
llvm-svn: 130090
2011-04-24 14:17:32 +00:00
Jay Foad
bda0742eef
PR9214: Convert the DIBuilder API to use ArrayRef.
...
llvm-svn: 130086
2011-04-24 10:11:03 +00:00
Jay Foad
c146569beb
Remove unused STL header includes.
...
llvm-svn: 130068
2011-04-23 19:53:52 +00:00
Jay Foad
9547cc903c
Like the coding standards say, do not use "using namespace std".
...
llvm-svn: 130054
2011-04-23 09:06:00 +00:00
Benjamin Kramer
fee48a936f
Silence an overzealous uninitialized variable warning from GCC.
...
llvm-svn: 130053
2011-04-23 08:21:06 +00:00