- Sep 06, 2010
-
-
Roman Divacky authored
llvm-svn: 113158
-
Chris Lattner authored
llvm-svn: 113157
-
Chris Lattner authored
pattern, so there is no need to define a matching function. llvm-svn: 113122
-
- Sep 05, 2010
-
-
Chris Lattner authored
llvm-svn: 113119
-
Chris Lattner authored
llvm-svn: 113116
-
rdar://6653118Chris Lattner authored
Since mem2reg isn't run at -O0, we get a ton of reloads from the stack, for example, before, this code: int foo(int x, int y, int z) { return x+y+z; } used to compile into: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx movl 4(%rsp), %esi addl %edx, %esi movl (%rsp), %edx addl %esi, %edx movl %edx, %eax addq $12, %rsp ret Now we produce: _foo: ## @foo subq $12, %rsp movl %edi, 8(%rsp) movl %esi, 4(%rsp) movl %edx, (%rsp) movl 8(%rsp), %edx addl 4(%rsp), %edx ## Folded load addl (%rsp), %edx ## Folded load movl %edx, %eax addq $12, %rsp ret Fewer instructions and less register use = faster compiles. llvm-svn: 113102
-
- Sep 04, 2010
-
-
Chris Lattner authored
llvm-svn: 113073
-
Chris Lattner authored
not SelectAddr llvm-svn: 113072
-
Bruno Cardoso Lopes authored
llvm-svn: 113059
-
Bruno Cardoso Lopes authored
llvm-svn: 113058
-
Bruno Cardoso Lopes authored
llvm-svn: 113056
-
Bruno Cardoso Lopes authored
llvm-svn: 113055
-
Bruno Cardoso Lopes authored
llvm-svn: 113050
-
Bruno Cardoso Lopes authored
llvm-svn: 113048
-
Bruno Cardoso Lopes authored
llvm-svn: 113047
-
Bruno Cardoso Lopes authored
llvm-svn: 113045
-
Bruno Cardoso Lopes authored
llvm-svn: 113044
-
Bruno Cardoso Lopes authored
llvm-svn: 113043
-
Bruno Cardoso Lopes authored
llvm-svn: 113035
-
Bruno Cardoso Lopes authored
llvm-svn: 113034
-
Bruno Cardoso Lopes authored
checking each standalone condition and decide whether emit target specific nodes or remove the condition if it's already matched before. llvm-svn: 113031
-
Bruno Cardoso Lopes authored
"Use target specific nodes instead of relying in unpckl and unpckh pattern fragments during isel time. Also place a depth limit in getShuffleScalarElt. llvm-svn: 113020
-
- Sep 03, 2010
-
-
Dale Johannesen authored
Bruno, please review. llvm-svn: 113014
-
Bruno Cardoso Lopes authored
llvm-svn: 113009
-
Bruno Cardoso Lopes authored
llvm-svn: 113008
-
Bruno Cardoso Lopes authored
functional changes llvm-svn: 113007
-
Bruno Cardoso Lopes authored
llvm-svn: 113006
-
Daniel Dunbar authored
some infinite loop and select failures. - Apologies for eager reverting, but its branch day. llvm-svn: 113000
-
Daniel Dunbar authored
infinite loop and select failures. llvm-svn: 112999
-
Daniel Dunbar authored
mask pattern fragment", which depends on r112934, which introduced some infinite loop and select failures. llvm-svn: 112998
-
Jim Grosbach authored
"For ARM stack frames that utilize variable sized objects and have either large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs." r112986 fixed a latent bug exposed by the above. llvm-svn: 112989
-
Jim Grosbach authored
alignment should be performed. Otherwise dynamic realignment may trigger when the register allocator has already used the frame pointer as a general purpose register. That is, we need to make sure that the list of reserved registers doesn't change after register allocation. llvm-svn: 112986
-
Bob Wilson authored
instructions prior to regalloc. Since it's getting a little close to the 2.8 branch deadline, I'll have to leave the rest of the instructions handled by the NEONPreAllocPass for now, but I didn't want to leave half of the VLD instructions converted and the other half not. llvm-svn: 112983
-
Daniel Dunbar authored
Revert "For ARM stack frames that utilize variable sized objects and have either", it is breaking oggenc with Clang for ARMv6. This reverts commit 8d6e29cfda270be483abf638850311670829ee65. llvm-svn: 112962
-
Benjamin Kramer authored
llvm-svn: 112955
-
Bruno Cardoso Lopes authored
The AVX versions of PALIGN and PABS* should only exist for 128-bit. Remove the unnecessary stuff. llvm-svn: 112944
-
Bruno Cardoso Lopes authored
llvm-svn: 112942
-
Bob Wilson authored
vabd intrinsic and add and/or zext operations. In the case of vaba, this also avoids the need for a DAG combine pattern to combine vabd with add. Update tests. Auto-upgrade the old intrinsics. llvm-svn: 112941
-
Bruno Cardoso Lopes authored
llvm-svn: 112938
-
Bruno Cardoso Lopes authored
- Teach getShuffleScalarElt how to handle more target specific nodes, so the DAGCombine can make use of it. - Add another hack to avoid the node update problem during legalization. More description on the comments llvm-svn: 112934
-