- May 13, 2006
-
-
Chris Lattner authored
llvm-svn: 28274
-
Chris Lattner authored
currently very limited, but can be extended in the future. For example, we now compile: uint %test30(uint %c1) { %c2 = cast uint %c1 to ubyte %c3 = xor ubyte %c2, 1 %c4 = cast ubyte %c3 to uint ret uint %c4 } to: _xor: movzbl 4(%esp), %eax xorl $1, %eax ret instead of: _xor: movb $1, %al xorb 4(%esp), %al movzbl %al, %eax ret More impressively, we now compile: struct B { unsigned bit : 1; }; void xor(struct B *b) { b->bit = b->bit ^ 1; } To (X86/PPC): _xor: movl 4(%esp), %eax xorl $-2147483648, (%eax) ret _xor: lwz r2, 0(r3) xoris r2, r2, 32768 stw r2, 0(r3) blr instead of (X86/PPC): _xor: movl 4(%esp), %eax movl (%eax), %ecx movl %ecx, %edx shrl $31, %edx # TRUNCATE movb %dl, %dl xorb $1, %dl movzbl %dl, %edx andl $2147483647, %ecx shll $31, %edx orl %ecx, %edx movl %edx, (%eax) ret _xor: lwz r2, 0(r3) srwi r4, r2, 31 xori r4, r4, 1 rlwimi r2, r4, 31, 0, 0 stw r2, 0(r3) blr This implements InstCombine/cast.ll:test30. llvm-svn: 28273
-
Chris Lattner authored
llvm-svn: 28272
-
Chris Lattner authored
Fix a nasty bug in the memcmp optimizer where we used the wrong variable! llvm-svn: 28269
-
Chris Lattner authored
llvm-svn: 28268
-
Chris Lattner authored
llvm-svn: 28267
-
- May 12, 2006
-
-
Chris Lattner authored
llvm-svn: 28266
-
Chris Lattner authored
llvm-svn: 28265
-
Chris Lattner authored
llvm-svn: 28264
-
Reid Spencer authored
is used in projects that have stricter warning control than LLVM. This also helps us find casts more easily if we ever need to. llvm-svn: 28263
-
Evan Cheng authored
that still fails (because all the register spill weights are inf), just grab one. llvm-svn: 28262
-
Evan Cheng authored
llvm-svn: 28261
-
Chris Lattner authored
llvm-svn: 28260
-
Chris Lattner authored
Bug identified by coverity. llvm-svn: 28259
-
Chris Lattner authored
llvm-svn: 28258
-
Chris Lattner authored
llvm-svn: 28257
-
Chris Lattner authored
object is never deleted though. llvm-svn: 28256
-
Chris Lattner authored
llvm-svn: 28255
-
Chris Lattner authored
llvm-svn: 28254
-
Chris Lattner authored
llvm-svn: 28253
-
Chris Lattner authored
llvm-svn: 28252
-
Reid Spencer authored
created by reading the symbol table. llvm-svn: 28251
-
Chris Lattner authored
llvm-svn: 28250
-
Chris Lattner authored
llvm-svn: 28249
-
Chris Lattner authored
llvm-svn: 28248
-
Chris Lattner authored
llvm-svn: 28247
-
Chris Lattner authored
llvm-svn: 28246
-
Chris Lattner authored
llvm-svn: 28245
-
Chris Lattner authored
%tmp152 = setgt uint %tmp144, %tmp149 ; <bool> [#uses=1] %tmp159 = setlt uint %tmp144, %tmp149 ; <bool> [#uses=1] %bothcond2 = or bool %tmp152, %tmp159 ; <bool> [#uses=1] To setne, not setune, which causes an assertion fault. llvm-svn: 28244
-
Chris Lattner authored
Nate, please verify that if InsertMask is 0, rlwimi shouldn't be used. This fixes the crash and causes no PPC testsuite regressions. llvm-svn: 28243
-
Chris Lattner authored
llvm-svn: 28242
-
Evan Cheng authored
llvm-svn: 28241
-
Evan Cheng authored
llvm-svn: 28240
-
Owen Anderson authored
This continues the work on PR 761. llvm-svn: 28239
-
Owen Anderson authored
TargetData.h. This should make recompiles a bit faster with my current TargetData tinkering. llvm-svn: 28238
-
Owen Anderson authored
llvm-svn: 28237
-
Evan Cheng authored
llvm-svn: 28236
-
Evan Cheng authored
llvm-svn: 28235
-
Owen Anderson authored
string representation. This is part of PR 761. llvm-svn: 28234
-
Chris Lattner authored
simplify tf(x,y,y,z) -> tf(x,y,z). llvm-svn: 28233
-