- Oct 17, 2004
-
-
Chris Lattner authored
us to use index registers for CPI's llvm-svn: 17082
-
Chris Lattner authored
index reg and scale llvm-svn: 17081
-
Chris Lattner authored
%X = and Y, constantint %Z = setcc %X, 0 instead of emitting: and %EAX, 3 test %EAX, %EAX je .LBBfoo2_2 # UnifiedReturnBlock We now emit: test %EAX, 3 je .LBBfoo2_2 # UnifiedReturnBlock This triggers 581 times on 176.gcc for example. llvm-svn: 17080
-
Chris Lattner authored
llvm-svn: 17079
-
Nate Begeman authored
1. optional shift left 2. and x, immX 3. and y, immY 4. or z, x, y ==> rlwimi z, x, y, shift, mask begin, mask end where immX == ~immY and immX is a run of set bits. This transformation fires 32 times on voronoi, once on espresso, and probably several dozen times on external benchmarks such as gcc. To put this in terms of actual code generated for struct B { unsigned a : 3; unsigned b : 2; }; void storeA (struct B *b, int v) { b->a = v;} void storeB (struct B *b, int v) { b->b = v;} Old: _storeA: rlwinm r2, r4, 0, 29, 31 lwz r4, 0(r3) rlwinm r4, r4, 0, 0, 28 or r2, r4, r2 stw r2, 0(r3) blr _storeB: rlwinm r2, r4, 3, 0, 28 rlwinm r2, r2, 0, 27, 28 lwz r4, 0(r3) rlwinm r4, r4, 0, 29, 26 or r2, r2, r4 stw r2, 0(r3) blr New: _storeA: lwz r2, 0(r3) rlwimi r2, r4, 0, 29, 31 stw r2, 0(r3) blr _storeB: lwz r2, 0(r3) rlwimi r2, r4, 3, 27, 28 stw r2, 0(r3) blr llvm-svn: 17078
-
Chris Lattner authored
llvm-svn: 17077
-
Chris Lattner authored
llvm-svn: 17076
-
Chris Lattner authored
for undef. llvm-svn: 17075
-
Chris Lattner authored
llvm-svn: 17074
-
Reid Spencer authored
llvm-svn: 17073
-
Reid Spencer authored
llvm-svn: 17072
-
Reid Spencer authored
that we undefine the macro before using its name in the definition. This can happen on Linux if _GNU_SOURCE is defined. llvm-svn: 17071
-
Chris Lattner authored
llvm-svn: 17070
-
Chris Lattner authored
llvm-svn: 17069
-
- Oct 16, 2004
-
-
Nate Begeman authored
flag rotate left word immediate then mask insert (rlwimi) as a two-address instruction, and update the ISel usage of the instruction accordingly. This will allow us to properly schedule rlwimi, and use it to efficiently codegen bitfield operations. llvm-svn: 17068
-
Chris Lattner authored
llvm-svn: 17067
-
Chris Lattner authored
ugly and giant constnat exprs in some programs. llvm-svn: 17066
-
Chris Lattner authored
involving %B instead of allowing any geps except %A's. llvm-svn: 17065
-
Misha Brukman authored
* Wrap at 80 cols llvm-svn: 17064
-
Chris Lattner authored
been defined yet! llvm-svn: 17063
-
Chris Lattner authored
llvm-svn: 17062
-
Chris Lattner authored
llvm-svn: 17061
-
Chris Lattner authored
llvm-svn: 17059
-
Chris Lattner authored
llvm-svn: 17058
-
Chris Lattner authored
llvm-svn: 17057
-
Chris Lattner authored
llvm-svn: 17056
-
Chris Lattner authored
llvm-svn: 17055
-
Chris Lattner authored
llvm-svn: 17054
-
Chris Lattner authored
llvm-svn: 17053
-
Chris Lattner authored
llvm-svn: 17052
-
Chris Lattner authored
llvm-svn: 17051
-
Chris Lattner authored
llvm-svn: 17050
-
Chris Lattner authored
now compile: 'foo() {}' into "ret" instead of "mov EAX, 0; ret" llvm-svn: 17049
-
Chris Lattner authored
llvm-svn: 17048
-
Chris Lattner authored
llvm-svn: 17047
-
Chris Lattner authored
llvm-svn: 17046
-
Chris Lattner authored
llvm-svn: 17045
-
Chris Lattner authored
ignore unreachable instructions llvm-svn: 17044
-
Chris Lattner authored
llvm-svn: 17043
-
Chris Lattner authored
that are initialized with undef. When promoting malloc to a global, start out initialized to undef llvm-svn: 17042
-