- Jan 11, 2010
-
-
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
llvm-svn: 93157
-
Dan Gohman authored
llvm-svn: 93156
-
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
-
Chris Lattner authored
lshr+ashr instead of trunc+sext. We want to avoid type conversions whenever possible, it is easier to codegen expressions without truncates and extensions. llvm-svn: 93107
-
Chris Lattner authored
llvm-svn: 93106
-
Chris Lattner authored
llvm-svn: 93105
-
Chris Lattner authored
bits known clear in the result and don't care about the # casts eliminated. TD is also dead but keeping it for now. llvm-svn: 93098
-
Chris Lattner authored
1) don't try to optimize a sext or zext that is only used by a trunc, let the trunc get optimized first. This avoids some pointless effort in some common cases since instcombine scans down a block in the first pass. 2) Change the cost model for zext elimination to consider an 'and' cheaper than a zext. This allows us to do it more aggressively, and for the next patch to simplify the code quite a bit. llvm-svn: 93097
-
Chris Lattner authored
more expressions to be promoted and casts eliminated. llvm-svn: 93096
-
Chris Lattner authored
llvm-svn: 93095
-
Julien Lerouge authored
llvm-svn: 93093
-
Chris Lattner authored
llvm-svn: 93092
-
Chris Lattner authored
llvm-svn: 93091
-
Chris Lattner authored
commonIntCastTransforms into the callers, eliminating a switch, and allowing the static predicate methods to be moved down to live next to the corresponding function. No functionality change. llvm-svn: 93089
-
Chris Lattner authored
llvm-svn: 93082
-
- Jan 09, 2010
-
-
Chris Lattner authored
llvm-svn: 93080
-
Chris Lattner authored
"In order to ease automatic bindings generation, it would be helpful if boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for." Patch by James Y Knight! llvm-svn: 93079
-
Jeffrey Yasskin authored
jump. People clearly weren't finding the extra requirements in CodeGenerator.html. llvm-svn: 93070
-
Chris Lattner authored
llvm-svn: 93069
-