Chris Lattner
325eeb1cd7
Transform: "icmp eq (trunc (lshr(X, cst1)), cst" to "icmp (and X, mask), cst"
...
when X has multiple uses. This is useful for exposing secondary optimizations,
but the X86 backend isn't ready for this when X has a single use. For example,
this can disable load folding.
This is inching towards resolving PR6627.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130238 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 20:18:20 +00:00
Chris Lattner
5036ce4a64
some random cleanups, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 20:02:45 +00:00
Chris Lattner
3443493cc7
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130235 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 19:50:39 +00:00
Jim Grosbach
f7da8821b4
ARM and Thumb2 support for atomic MIN/MAX/UMIN/UMAX loads.
...
rdar://9326019
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130234 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 19:44:18 +00:00
Rafael Espindola
fea8fea583
Print the label if we will use it in debug_frame.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130232 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 19:26:53 +00:00
Devang Patel
116da2fbe9
Refactor code. Keep dwarf register operation selection logic at one place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130231 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 19:06:18 +00:00
Jakob Stoklund Olesen
1394e6d925
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130229 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 18:52:36 +00:00
Jakob Stoklund Olesen
c9e5015dec
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130228 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 18:52:33 +00:00
Benjamin Kramer
efa81404a5
Force a triple on this test to unbreak windows buildbots.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130226 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 18:47:43 +00:00
Devang Patel
7b5bd37241
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)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130225 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 18:24:39 +00:00
Chris Lattner
9750acc079
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130206 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 17:41:02 +00:00
Dan Gohman
a61e73bda5
Fast-isel support for simple inline asms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130205 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 17:18:34 +00:00
Oscar Fuentes
ab92d1e1c2
Honor LLVM_BUILD_RUNTIME.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130199 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 14:55:27 +00:00
Rafael Espindola
cace5b8caf
Add test for PR9743.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130198 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 14:17:42 +00:00
Duncan Sands
a37caf6472
Another example of a static table that wasn't marked static.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130193 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 07:30:10 +00:00
Chris Lattner
bffc2b4af1
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130192 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 06:14:13 +00:00
Nick Lewycky
e88c724ff0
Add cmakefiles to build profile_rt.so!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130191 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 05:48:41 +00:00
Evan Cheng
b16d06f88a
Fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130190 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 04:57:37 +00:00
Rafael Espindola
b28d4f152e
Print all the moves at a given label instead of just the first one.
...
Remove previous DwarfCFI hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130187 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 03:58:56 +00:00
Nick Lewycky
1790c9cbb6
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130186 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 03:54:16 +00:00
Rafael Espindola
d88cac0a6e
No relocation produces a SLEB or ULEB, make sure they are handled in MC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130181 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 02:17:58 +00:00
Chris Lattner
1f821512fc
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130180 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 01:21:15 +00:00
Devang Patel
0c99861836
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130178 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-26 00:12:46 +00:00
Devang Patel
9341d10f94
Rename a local variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130171 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 23:05:21 +00:00
Devang Patel
b865d46d95
Rename a method to match what it really does.
...
s/addVariableAddress/addFrameVariableAddress/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 23:02:17 +00:00
Devang Patel
80925f5dca
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130167 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 22:52:55 +00:00
Dan Gohman
308bec390f
Fix an iterator invalidation bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130166 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 22:48:29 +00:00
Eric Christopher
546c1ffe5f
Make this test disable fast isel as it's not needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130165 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 22:39:46 +00:00
Chris Lattner
607b8ebfb8
mark a large static table static. Pointed out by Michael Ilseman!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130160 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 22:14:33 +00:00
Chris Lattner
6311a55b9d
Improve adherence to general style, use "foo_t &x" instead of "foo_t& x"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130153 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 21:02:12 +00:00
Chris Lattner
e27c3ea2bc
allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,
...
patch by Johannes Schaub!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130151 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 20:58:50 +00:00
Chris Lattner
ed0318eab8
add a missed bitfield instcombine.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130137 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 18:44:26 +00:00
Akira Hatanaka
f48eb533d5
Lower BlockAddress node when relocation-model is static.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130131 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 17:10:45 +00:00
Devang Patel
06104e3743
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130129 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 16:33:52 +00:00
Benjamin Kramer
a42a757176
Make tests more useful.
...
lit needs a linter ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130126 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 10:12:01 +00:00
Chandler Carruth
a4a2a03c31
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130125 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 07:11:23 +00:00
Duncan Sands
d03bcc1364
Fix comment typo. Noticed by Liu.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130120 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-25 06:21:43 +00:00
Rafael Espindola
e54e785be5
Simplify the logic. Noticed by aKor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130116 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 19:55:34 +00:00
Rafael Espindola
7ed6732447
Synchronize the conditions for producing a .cfi_startproc and a .cfi_endproc.
...
Fixes PR9787.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130115 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 19:00:34 +00:00
Sebastian Redl
dac4b9267b
Fix Target/ARM/Thumb1FrameLowering.h header guard.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130097 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 15:47:01 +00:00
Sebastian Redl
69ffd7ad14
Give MC/MCDisassembler/Disassembler.h a header guard.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130096 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 15:46:56 +00:00
Sebastian Redl
6796e4fc88
Give SplitKit.h a header guard.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130095 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 15:46:51 +00:00
Sebastian Redl
f462ab431f
Give ImmutableIntervalMap.h an include guard.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130094 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 15:46:46 +00:00
Jay Foad
61717b3d94
Fix an assert to check exactly what it says.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130093 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 14:30:00 +00:00
Mikhail Glushenkov
4e699cf518
Add a TODO.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130092 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 14:17:41 +00:00
Mikhail Glushenkov
fb88665d97
Regenerate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130091 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 14:17:37 +00:00
Mikhail Glushenkov
834b93b51d
Remove all references to plugins from the LLVMC docs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130090 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 14:17:32 +00:00
Jay Foad
685501836b
PR9214: Convert the DIBuilder API to use ArrayRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130086 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-24 10:11:03 +00:00
Jay Foad
ddcdcc8863
Remove unused STL header includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-23 19:53:52 +00:00
Jay Foad
a0f5092703
Like the coding standards say, do not use "using namespace std".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130054 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-23 09:06:00 +00:00