- Aug 31, 2009
-
-
Chris Lattner authored
llvm-svn: 80528
-
Chris Lattner authored
argpromotion and structretpromote. Basically, when replacing a function, they used the 'changeFunction' api which changes the entry in the function map (and steals/reuses the callgraph node). This has some interesting effects: first, the problem is that it doesn't update the "callee" edges in any callees of the function in the call graph. Second, this covers for a major problem in all the CGSCC pass stuff, which is that it is completely broken when functions are deleted if they *don't* reuse a CGN. (there is a cute little fixme about this though :). This patch changes the protocol that CGSCC passes must obey: now the CGSCC pass manager copies the SCC and preincrements its iterator to avoid passes invalidating it. This allows CGSCC passes to mutate the current SCC. However multiple passes may be run on that SCC, so if passes do this, they are now required to *update* the SCC to be current when they return. Other less interesting parts of this patch are that it makes passes update the CG more directly, eliminates changeFunction, and requires clients of replaceCallSite to specify the new callee CGN if they are changing it. llvm-svn: 80527
-
Erick Tryzelaar authored
llvm-svn: 80526
-
Erick Tryzelaar authored
llvm-svn: 80525
-
Chris Lattner authored
llvm-svn: 80524
-
Chris Lattner authored
llvm-svn: 80523
-
Chris Lattner authored
llvm-svn: 80522
-
Chris Lattner authored
llvm-svn: 80521
-
- Aug 30, 2009
-
-
Chris Lattner authored
llvm-svn: 80520
-
Chris Lattner authored
llvm-svn: 80519
-
Chris Lattner authored
llvm-svn: 80518
-
Chris Lattner authored
llvm-svn: 80517
-
Daniel Dunbar authored
llvm-svn: 80516
-
Daniel Dunbar authored
llvm-svn: 80515
-
Chris Lattner authored
llvm-svn: 80514
-
Chris Lattner authored
llvm-svn: 80513
-
Chris Lattner authored
llvm-svn: 80512
-
Chris Lattner authored
remove it. llvm-svn: 80511
-
Chris Lattner authored
llvm-svn: 80510
-
Chris Lattner authored
is itself a bitcast. Since we have gep(bitcast(bitcast(y))) in this case, just wait for the two bitcasts to get zapped. This prevents instcombine from confusing some aliasing stuff, and allows it to directly eliminate the load in the testcase. llvm-svn: 80508
-
Chris Lattner authored
llvm-svn: 80507
-
Chris Lattner authored
in a few scalar xforms to simplify things. llvm-svn: 80506
-
Chris Lattner authored
llvm-svn: 80505
-
Chris Lattner authored
llvm-svn: 80504
-
Chris Lattner authored
llvm-svn: 80503
-
Anton Korobeynikov authored
llvm-svn: 80502
-
Chris Lattner authored
the new Instcombine builder. llvm-svn: 80501
-
Chris Lattner authored
llvm-svn: 80500
-
Chris Lattner authored
base class lookup. llvm-svn: 80499
-
Anton Korobeynikov authored
Remove the assertion and generalize the code for ARM NEON stuff. llvm-svn: 80498
-
Torok Edwin authored
implementation. llvm-svn: 80493
-
Chris Lattner authored
workslist and is set to insert new instructions before the current one. Convert a bunch of stuff that used to call InsertNewInstBefore over to use it, greatly simplifying code and making it more natural. There is still a lot more to go, but this is a good start. llvm-svn: 80492
-
Anders Carlsson authored
llvm-svn: 80491
-
Daniel Dunbar authored
llvm-svn: 80490
-
Anders Carlsson authored
llvm-svn: 80489
-
Chris Lattner authored
if the operand is not an instruction. Simplify most uses of AddOperandsToWorkList to use AddValue and inline it into the one remaining callsite. llvm-svn: 80488
-
Chris Lattner authored
argument stronger typed. llvm-svn: 80487
-
Chris Lattner authored
former looks too much like AddUsersToWorkList and keeps confusing me. Remove AddSoonDeadInstToWorklist and change its two callers to do the same thing in a simpler way. llvm-svn: 80486
-
Daniel Dunbar authored
llvm-svn: 80485
-
Daniel Dunbar authored
- Switch Emit{CommonSymbol,Zerofill} to take alignment in bytes (for consistency). llvm-svn: 80484
-