- Sep 06, 2011
-
-
Owen Anderson authored
Try again at r138809 (make DSE more aggressive in removing dead stores at the end of a function), now with less deleting stores before memcpy's. llvm-svn: 139150
-
Jakob Stoklund Olesen authored
llvm-svn: 139148
-
Devang Patel authored
Now, named mdnode llvm.dbg.cu keeps track of all compile units in a module. Update DebugInfoFinder to collect compile units from llvm.dbg.cu. llvm-svn: 139147
-
Duncan Sands authored
init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das. llvm-svn: 139140
-
Nick Lewycky authored
llvm-svn: 139139
-
Nick Lewycky authored
llvm-svn: 139138
-
Nick Lewycky authored
llvm-svn: 139137
-
Nick Lewycky authored
add more showing of my work. llvm-svn: 139136
-
Nick Lewycky authored
llvm-svn: 139135
-
Nick Lewycky authored
llvm-svn: 139134
-
Nick Lewycky authored
visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with correct math. Fixes PR10383! llvm-svn: 139133
-
Nick Lewycky authored
llvm-svn: 139130
-
Nick Lewycky authored
HowFarToZero; the case for a canonical loop. llvm-svn: 139126
-
- Sep 05, 2011
-
-
Nick Lewycky authored
instructions are more aligned than the CPU requires, and adds some additional directives, to follow in future patches. Patch by David Meyer! llvm-svn: 139125
-
Nick Lewycky authored
llvm-svn: 139124
-
Nick Lewycky authored
llvm-svn: 139122
-
Benjamin Kramer authored
InstSimplify: Don't try to replace an extractvalue/insertvalue pair with the original value if types don't match. Fixes clang selfhost. llvm-svn: 139120
-
Duncan Sands authored
exception. llvm-svn: 139117
-
Duncan Sands authored
up do-nothing exception handling code produced by dragonegg. llvm-svn: 139113
-
Benjamin Kramer authored
- Drop support for X >u 0, it's equivalent to X != 0 and should be canonicalized into the latter. - Add X < 1 -> unlikely, which is what instcombine canonicalizes X <= 0 into. - Add X > -1 -> likely, which is what instcombine canonicalizes X >= 0 into. llvm-svn: 139110
-
- Sep 04, 2011
-
-
Bill Wendling authored
Use Duncan's patch to delete the instructions in reverse order (minus the landingpad and terminator). llvm-svn: 139090
-
Bill Wendling authored
call. The call may be in the same BB as the landingpad instruction. If that's the case, then inserting the loads after the landingpad inst, but before the extractvalues, causes undefined behavior. llvm-svn: 139088
-
- Sep 03, 2011
-
-
Benjamin Kramer authored
llvm-svn: 139079
-
Bill Wendling authored
values that the resume instruction uses. PR10850 llvm-svn: 139076
-
Bruno Cardoso Lopes authored
the cycle of missing AVX counterparts of already present SSE* patterns llvm-svn: 139073
-
Bruno Cardoso Lopes authored
llvm-svn: 139072
-
Bruno Cardoso Lopes authored
llvm-svn: 139071
-
Bruno Cardoso Lopes authored
llvm-svn: 139070
-
Bruno Cardoso Lopes authored
llvm-svn: 139069
-
Bruno Cardoso Lopes authored
duplicate it for AVX mode. llvm-svn: 139068
-
Bruno Cardoso Lopes authored
llvm-svn: 139067
-
Bruno Cardoso Lopes authored
that the AVX versions (even the 128-bit ones) all clear the upper part of the destination register. llvm-svn: 139066
-
Bruno Cardoso Lopes authored
pattern should be matched llvm-svn: 139065
-
Bruno Cardoso Lopes authored
llvm-svn: 139064
-
Bruno Cardoso Lopes authored
it! llvm-svn: 139063
-
Bruno Cardoso Lopes authored
llvm-svn: 139062
-
Bruno Cardoso Lopes authored
llvm-svn: 139061
-
Bruno Cardoso Lopes authored
OptForSize pattern llvm-svn: 139060
-
Owen Anderson authored
If we have a chain of zext -> assert_zext -> zext -> use, the first zext would get simplified away because of the later zext, and then the later zext would get simplified away because of the assert. The solution is to teach SimplifyDemandedBits that assert_zext demands all of the high bits of its input, rather than only those demanded by its users. No testcase because the only example I have manifests as llvm-gcc miscompiling LLVM, and I haven't found a smaller case that reproduces this problem. Fixes <rdar://problem/10063365>. llvm-svn: 139059
-
Jakob Stoklund Olesen authored
The explanation about a 0 argument being materialized as xor is no longer valid. Rematerialization will check if EFLAGS is live before clobbering it. The code produced by X86TargetLowering::EmitLoweredSelect does not clobber EFLAGS. This causes one less testb instruction to be generated in the cmov.ll test case. llvm-svn: 139057
-