- May 06, 2010
-
-
Dan Gohman authored
llvm-svn: 103145
-
Chris Lattner authored
Users can write broken code that emits the same label twice with asm renaming, detect this and emit a fatal backend error instead of aborting. llvm-svn: 103140
-
Dan Gohman authored
llvm-svn: 103139
-
Dan Gohman authored
support a new bottom-up mode. llvm-svn: 103138
-
-
Jim Grosbach authored
instructions to subtarget features and update tests to reflect. PR5717. llvm-svn: 103136
-
Dan Gohman authored
of just letting them inherit the debug locations of adjacent instructions. Debug info should aim to be either accurate or absent. llvm-svn: 103135
-
Jakob Stoklund Olesen authored
llvm-svn: 103133
-
Sean Callanan authored
that was causing PC-relative branch targets to be evaluated incorrectly. Also added support for checking operand values to the llvm-mc tester. llvm-svn: 103128
-
Devang Patel authored
llvm-svn: 103126
-
Evan Cheng authored
Do not pre-allocate references of D registers pairs if they are extracted from the same Q register and are in the right order. llvm-svn: 103124
-
- May 05, 2010
-
-
Dan Gohman authored
user's source, so don't arbitrarily assign them a debug location. llvm-svn: 103121
-
Jim Grosbach authored
Jordy <snhjordy@gmail.com>. Followup patches will add some tests and adjust to use Subtarget features for the instructions. llvm-svn: 103119
-
Bob Wilson authored
This fixes the compile-time regressions seen in last night's tests. llvm-svn: 103118
-
Daniel Dunbar authored
writing them. - <rdar://problem/7885351> integrated assembler broken for i386 objc code llvm-svn: 103112
-
Daniel Dunbar authored
llvm-svn: 103111
-
Daniel Dunbar authored
llvm-svn: 103110
-
Evan Cheng authored
llvm-svn: 103109
-
rdar://7415680Chris Lattner authored
Microoptimize Twine's with unsigned and int to not pin their value to the stack. This saves stack space in common cases and allows mem2reg in the caller. A simple example is: void foo(const Twine &); void bar(int x) { foo("xyz: " + Twine(x)); } Before: __Z3bari: subq $40, %rsp movl %edi, 36(%rsp) leaq L_.str3(%rip), %rax leaq 36(%rsp), %rcx leaq 8(%rsp), %rdi movq %rax, 8(%rsp) movq %rcx, 16(%rsp) movb $3, 24(%rsp) movb $7, 25(%rsp) callq __Z3fooRKN4llvm5TwineE addq $40, %rsp ret After: __Z3bari: subq $24, %rsp leaq L_.str3(%rip), %rax movq %rax, (%rsp) movslq %edi, %rax movq %rax, 8(%rsp) movb $3, 16(%rsp) movb $7, 17(%rsp) leaq (%rsp), %rdi callq __Z3fooRKN4llvm5TwineE addq $24, %rsp ret It saves 16 bytes of stack and one instruction in this case. llvm-svn: 103107
-
Evan Cheng authored
llvm-svn: 103104
-
Evan Cheng authored
llvm-svn: 103103
-
Evan Cheng authored
Teach liveintervalanalysis about virtual registers which are defined by reg_sequence instructions that are formed by registers defined by distinct instructions. e.g. 80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0 . . . 120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0 llvm-svn: 103102
-
Daniel Dunbar authored
llvm-svn: 103095
-
Daniel Dunbar authored
when possible. - <rdar://problem/7934873> llvm-svn: 103092
-
Benjamin Kramer authored
This should fix mysteriously crashing boost regression tests when stderr is managed by bjam (PR7043). llvm-svn: 103085
-
Eric Christopher authored
hack the code to turn it off when debugging. llvm-svn: 103083
-
Bob Wilson authored
MachineSSAUpdater to avoid duplicating all the code. llvm-svn: 103060
-
Eric Christopher authored
llvm-svn: 103057
-
- May 04, 2010
-
-
Evan Cheng authored
With -neon-reg-sequence, models forming a Q register from a pair of consecutive D registers as a REG_SEQUENCE. llvm-svn: 103047
-
Evan Cheng authored
llvm-svn: 103041
-
Evan Cheng authored
Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g. %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ... %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6 => %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ... PHI elimination now does more than phi elimination. It is really a de-SSA pass. llvm-svn: 103039
-
Bob Wilson authored
indirect branches in all the predecessors. This avoids unnecessarily splitting edges in cases where load PRE is not possible anyway. Thanks to Jakub Staszak for pointing this out. llvm-svn: 103034
-
Chris Lattner authored
"on the rare occasion the SPU BE produces illegal assembly - it tries to emit an add instruction of the form 'a reg, reg, imm'." Patch by Kalle Raiskila! llvm-svn: 103021
-
Daniel Dunbar authored
instructions which have no direct register usage. Darwin 'as' accepts: add $0, (%rax) but rejects mov $0, (%rax) for example. Given that, only accept suffix matches which match exactly one form. We still need to emit nice diagnostics for failures... llvm-svn: 103015
-
Evan Cheng authored
llvm-svn: 103013
-
Daniel Dunbar authored
- The idea is that when a match fails, we just try to match each of +'b', +'w', +'l'. If exactly one matches, we assume this is a mnemonic prefix and accept it. If all match, we assume it is width generic, and take the 'l' form. - This would be a horrible hack, if it weren't so simple. Therefore it is an elegant solution! Chris gets the credit for this particular elegant solution. :) - Next step to making this more robust is to have the X86 matcher generate the mnemonic prefix information. Ideally we would also compute up-front exactly which mnemonic to attempt to match, but this may require more custom code in the matcher than is really worth it. llvm-svn: 103012
-
Duncan Sands authored
buildbot: the debugging and non-debugging versions of getFunction were not functionally equivalent: the non-debugging version wrongly assumed that if a metadata operand was not metadata, then it had a non-null containing function. This is not true, since the operand might be a global value, constant etc. llvm-svn: 103008
-
Duncan Sands authored
RAUW of a global variable with a local variable in function F, if function local metadata M in function G was using the global then M would become function-local to both F and G, which is not allowed. See the testcase for an example. Fixed by detecting this situation and zapping the metadata operand when it occurs. llvm-svn: 103007
-
Gabor Greif authored
llvm-svn: 103003
-
Devang Patel authored
llvm-svn: 103001
-