- Jan 12, 2010
-
-
Dan Gohman authored
llvm-svn: 93229
-
Dan Gohman authored
llvm-svn: 93228
-
Dan Gohman authored
llvm-svn: 93227
-
Chris Lattner authored
llvm-svn: 93222
-
Chris Lattner authored
condition is a xor with a phi node. This eliminates nonsense like this from 176.gcc in several places: LBB166_84: testl %eax, %eax - setne %al - xorb %cl, %al - notb %al - testb $1, %al - je LBB166_85 + je LBB166_69 + jmp LBB166_85 This is rdar://7391699 llvm-svn: 93221
-
Evan Cheng authored
instruction is copy like where the source and destination registers can overlap. This is to be used by the coalescable to coalesce the source and destination registers of instructions like X86::MOVSX64rr32. Apparently some crazy people believe the coalescer is too simple. llvm-svn: 93210
-
Chris Lattner authored
on branches by renaming it and checking for a branch at the call site. llvm-svn: 93208
-
- Jan 11, 2010
-
-
Evan Cheng authored
Add manual ISD::OR fastisel selection routines. TableGen is no longer autogen them after 93152 and 93191. llvm-svn: 93204
-
Chris Lattner authored
codegen has no apparent problem with the trunc version of this, because it turns into a simple subreg idiom llvm-svn: 93202
-
Chris Lattner authored
trunc has multiple uses. Codegen is not able to coalesce the subreg case correctly and so this leads to higher register pressure and spilling (see PR5997). This speeds up 256.bzip2 from 8.60 -> 8.04s on my machine, ~7%. llvm-svn: 93200
-
Victor Hernandez authored
Consolidate ConvertGlobalValIDToValue, ConvertGlobalOrMetadataValIDToValue, and ConvertValIDToValue into a more powerful ConvertValIDToValue() that does all three's work llvm-svn: 93197
-
Evan Cheng authored
Extend r93152 to work on OR r, r. If the source set bits are known not to overlap, then select as an ADD instead. llvm-svn: 93191
-
Evan Cheng authored
llvm-svn: 93185
-
Jakob Stoklund Olesen authored
This fixes PR5980. llvm-svn: 93184
-
Benjamin Kramer authored
llvm-svn: 93183
-
Evan Cheng authored
llvm-svn: 93182
-
Mon P Wang authored
loads are not in the default address space because the transformation discards src value info. llvm-svn: 93180
-
Benjamin Kramer authored
llvm-svn: 93174
-
Devang Patel authored
llvm-svn: 93165
-
Benjamin Kramer authored
have a fix. llvm-svn: 93163
-
Benjamin Kramer authored
- getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. llvm-svn: 93161
-
Dan Gohman authored
has an immediate with at least 32 bits of leading zeros, to avoid needing to materialize that immediate in a register first. FileCheckize, tidy, and extend a testcase to cover this case. This fixes rdar://7527390. llvm-svn: 93160
-
Dan Gohman authored
new AsmPrinter. This is perhaps less elegant than describing them in terms of MOV32r0 and subreg operations, but it allows the current register to rematerialize them. llvm-svn: 93158
-
Dan Gohman authored
single user. The _su forms are intended for non-top-level nodes. llvm-svn: 93155
-
Dan Gohman authored
llvm-svn: 93154
-
Evan Cheng authored
Select an OR with immediate as an ADD if the input bits are known zero. This allow the instruction to be 3address-fied if needed. llvm-svn: 93152
-
David Greene authored
Implement a feature (-vector-unaligned-mem) to allow targets to ignore alignment requirements for SIMD memory operands. This is useful on architectures like the AMD 10h that do not trap on unaligned references if a status bit is twiddled at startup time. llvm-svn: 93151
-
Victor Hernandez authored
Make InsertDbgValueIntrinsic() and get Offset take and recieve a uint64_t. Get constness correct for getVariable() and getValue(). llvm-svn: 93149
-
Chris Lattner authored
good code on PR4216: _test_bitfield: ## @test_bitfield orl $32962, %edi movl $4294941946, %eax andq %rdi, %rax ret instead of: _test_bitfield: movl $4294941696, %ecx movl %edi, %eax orl $194, %edi orl $32768, %eax andq $250, %rdi andq %rax, %rcx movq %rdi, %rax orq %rcx, %rax ret Evan is looking into the remaining andq+imm -> andl optimization. llvm-svn: 93147
-
Chris Lattner authored
BitsToClear case. This allows it to promote expressions which have an and/or/xor after the lshr, promoting cases like test2 (from PR4216) and test3 (random extample extracted from a spec benchmark). clang now compiles the code in PR4216 into: _test_bitfield: ## @test_bitfield movl %edi, %eax orl $194, %eax movl $4294902010, %ecx andq %rax, %rcx orl $32768, %edi andq $39936, %rdi movq %rdi, %rax orq %rcx, %rax ret instead of: _test_bitfield: ## @test_bitfield movl %edi, %eax orl $194, %eax movl $4294902010, %ecx andq %rax, %rcx shrl $8, %edi orl $128, %edi shlq $8, %rdi andq $39936, %rdi movq %rdi, %rax orq %rcx, %rax ret which is still not great, but is progress. llvm-svn: 93145
-
Chris Lattner authored
new BitsToClear result which allows us to start promoting expressions that end with a lshr-by-constant. This is conservatively correct and better than what we had before (see testcases) but still needs to be extended further. llvm-svn: 93144
-
Chris Lattner authored
llvm-svn: 93143
-
- Jan 10, 2010
-
-
Chris Lattner authored
the dest of the sext. llvm-svn: 93128
-
Chris Lattner authored
the zext dest type. This allows us to handle test52/53 in cast.ll, and allows llvm-gcc to generate much better code for PR4216 in -m64 mode: _test_bitfield: ## @test_bitfield orl $32962, %edi movl %edi, %eax andl $-25350, %eax ret This also fixes a bug handling vector extends, ensuring that the mask produced is a vector constant, not an integer constant. llvm-svn: 93127
-
Chris Lattner authored
integer vectors as well as just integers. llvm-svn: 93126
-
Mikhail Glushenkov authored
warning: suggest parentheses around ‘&&’ within ‘||’. llvm-svn: 93121
-
Chris Lattner authored
simpler profitability predicate. llvm-svn: 93111
-
Chris Lattner authored
llvm-svn: 93110
-
Chris Lattner authored
elimination of a sign extend to be a win, which simplifies the client of CanEvaluateSExtd, and allows us to eliminate more casts (examples taken from real code). llvm-svn: 93109
-
Victor Hernandez authored
Document PFS argument to ParseValID() and ConvertGlobalOrMetadataValIDToValue(). llvm-svn: 93108
-