- Feb 21, 2012
-
-
Andrew Trick authored
Passes after RegAlloc should be able to rely on MRI->getNumVirtRegs() == 0. This makes sharing code for pre/postRA passes more robust. Now, to check if a pass is running before the RA pipeline begins, use MRI->isSSA(). To check if a pass is running after the RA pipeline ends, use !MRI->getNumVirtRegs(). PEI resets virtual regs when it's done scavenging. PTX will either have to provide its own PEI pass or assign physregs. llvm-svn: 151032
-
Andrew Trick authored
llvm-svn: 151031
-
Rafael Espindola authored
llvm-svn: 151026
-
Rafael Espindola authored
llvm-svn: 151025
-
Chandler Carruth authored
construction. Simplify its interface, implementation, and users accordingly as there is no longer an 'uninitialized' state to check for. Also, fixes a bug lurking in the interface as there was one method that didn't correctly check for initialization. llvm-svn: 151024
-
Rafael Espindola authored
know where users will be added. Because of this, it cannot use Builder.GetInsertPoint at all. This patch * removes the FIXME about adding the assert. * adds a comment explaining hy we don't have one. * removes a broken logic that only works for some callers and is not needed since r150884. * adds an assert to caller that would have caught the bug fixed by r150884. llvm-svn: 151015
-
Lang Hames authored
llvm-svn: 151006
-
Nick Lewycky authored
llvm-svn: 151003
-
Evan Cheng authored
ecx = mov eax al = mov ch The second copy is not a nop because the sub-indices of ecx,ch is not the same of that of eax/al. Re-enabled machine-cp. PR11940 llvm-svn: 151002
-
Chad Rosier authored
llvm-svn: 150998
-
- Feb 20, 2012
-
-
Benjamin Kramer authored
InstCombine: Removing the base from the address calculation is only safe when the GEPs are inbounds. llvm-svn: 150978
-
Eric Christopher authored
derived from anything. llvm-svn: 150975
-
Eric Christopher authored
too. llvm-svn: 150974
-
Eric Christopher authored
llvm-svn: 150973
-
Benjamin Kramer authored
InstCombine: When comparing two GEPs that were derived from the same base pointer but use different types, expand the offset calculation and to the compare on the offset if profitable. This came up in SmallVector code. llvm-svn: 150962
-
Benjamin Kramer authored
- Ignore pointer casts. - Also expand GEPs that aren't constantexprs when they have one use or only constant indices. - We now compile "&foo[i] - &foo[j]" into "i - j". llvm-svn: 150961
-
James Molloy authored
llvm-svn: 150957
-
James Molloy authored
Teach TargetSelectionDAG about lengthening loads for vector types and set v4i8 as legal. Allow FP_TO_UINT for v4i16 from v4i32. llvm-svn: 150956
-
Evan Cheng authored
flow changes have already hidden the bug. rdar://10893812 llvm-svn: 150949
-
Nick Lewycky authored
llvm-svn: 150947
-
Chris Lattner authored
implementing PR12013. We now compile the testcase to: __Z4testv: ## @_Z4testv ## BB#0: ## %_ZN4llvm15SmallVectorImplIiE9push_backERKi.exit pushq %rbx subq $64, %rsp leaq 32(%rsp), %rbx movq %rbx, (%rsp) leaq 64(%rsp), %rax movq %rax, 16(%rsp) movl $1, 32(%rsp) leaq 36(%rsp), %rax movq %rax, 8(%rsp) leaq (%rsp), %rdi callq __Z1gRN4llvm11SmallVectorIiLj8EEE movq (%rsp), %rdi cmpq %rbx, %rdi je LBB0_2 ## BB#1: callq _free LBB0_2: ## %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit addq $64, %rsp popq %rbx ret instead of: __Z4testv: ## @_Z4testv ## BB#0: pushq %rbx subq $64, %rsp xorl %eax, %eax leaq (%rsp), %rbx addq $32, %rbx movq %rbx, (%rsp) movq %rbx, 8(%rsp) leaq 64(%rsp), %rcx movq %rcx, 16(%rsp) je LBB0_2 ## BB#1: movl $1, 32(%rsp) movq %rbx, %rax LBB0_2: ## %_ZN4llvm15SmallVectorImplIiE9push_backERKi.exit addq $4, %rax movq %rax, 8(%rsp) leaq (%rsp), %rdi callq __Z1gRN4llvm11SmallVectorIiLj8EEE movq (%rsp), %rdi cmpq %rbx, %rdi je LBB0_4 ## BB#3: callq _free LBB0_4: ## %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit addq $64, %rsp popq %rbx ret This doesn't shrink clang noticably though. llvm-svn: 150944
-
Chandler Carruth authored
functionality changed. This is in preparation for some refactoring of how this class behaves. llvm-svn: 150941
-
Nick Lewycky authored
the information that they pass around between them. No functionality change! llvm-svn: 150939
-
- Feb 19, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150921
-
Ahmed Charles authored
llvm-svn: 150918
-
Ahmed Charles authored
llvm-svn: 150917
-
Craig Topper authored
Remove some unneeded includes and fix ordering in X86ISelLowering.cpp. Remove unneeded 'using namespace'. llvm-svn: 150916
-
Lang Hames authored
llvm-svn: 150915
-
Lang Hames authored
llvm-svn: 150914
-
Craig Topper authored
llvm-svn: 150913
-
Lang Hames authored
llvm-svn: 150912
-
NAKAMURA Takumi authored
FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang. llvm-svn: 150911
-
Lang Hames authored
llvm-svn: 150910
-
Lang Hames authored
Defer sanity checks on live intervals until after all have been updated. Hold (LiveInterval, LiveRange) pairs to update, rather than vregs. llvm-svn: 150909
-
Craig Topper authored
Make a bunch of X86ISelLowering shuffle functions static now that they are no longer needed by isel. llvm-svn: 150908
-
Jia Liu authored
llvm-svn: 150904
-
Jia Liu authored
llvm-svn: 150902
-
Craig Topper authored
llvm-svn: 150899
-
- Feb 18, 2012
-
-
Ahmed Charles authored
llvm-svn: 150897
-
Talin authored
llvm-svn: 150890
-