- May 23, 2004
-
-
Chris Lattner authored
llvm-svn: 13692
-
Chris Lattner authored
we make the transformation. This allows us to use interprocedural alias analyses successfully. llvm-svn: 13691
-
- Apr 23, 2004
-
-
Misha Brukman authored
the function instead of isolating it. This also means the condition is reversed. llvm-svn: 13112
-
Misha Brukman authored
the Module. The default behavior keeps functionality as before: the chosen function is the one that remains. llvm-svn: 13111
-
- Apr 21, 2004
-
-
Chris Lattner authored
Eventually it would be nice if CallGraph maintained an ilist of CallGraphNode's instead of a vector of pointers to them, but today is not that day. llvm-svn: 13100
-
Chris Lattner authored
llvm-svn: 13089
-
Chris Lattner authored
is done, which avoids invalidating iterators in the SCC traversal routines llvm-svn: 13088
-
- Apr 20, 2004
-
-
Chris Lattner authored
llvm-svn: 13080
-
- Apr 19, 2004
-
-
Chris Lattner authored
structure to being dynamically computed on demand. This makes updating loop information MUCH easier. llvm-svn: 13045
-
- Apr 12, 2004
-
-
Chris Lattner authored
execute other CallGraphSCCPasses after the inliner without crashing. llvm-svn: 12861
-
Chris Lattner authored
llvm-svn: 12857
-
Chris Lattner authored
llvm-svn: 12856
-
- Apr 08, 2004
-
-
Chris Lattner authored
Now we collect all of the call sites we are interested in inlining, then inline them. This entirely avoids issues with trying to inline a call site we got by inlining another call site. This also eliminates iterator invalidation issues. llvm-svn: 12770
-
- Mar 18, 2004
-
-
Chris Lattner authored
extracted all 63 loops for Olden/bh without crashing and without miscompiling the program!!! llvm-svn: 12491
-
Chris Lattner authored
exit nodes llvm-svn: 12490
-
Chris Lattner authored
llvm-svn: 12483
-
- Mar 15, 2004
-
-
Chris Lattner authored
horrible hack. llvm-svn: 12423
-
Chris Lattner authored
extracted, and a function that contained a single top-level loop never had the loop extracted, regardless of how much non-loop code there was. llvm-svn: 12403
-
- Mar 14, 2004
-
-
Chris Lattner authored
the command line, and the single loop extractor, usable by bugpoint llvm-svn: 12390
-
Chris Lattner authored
llvm-svn: 12385
-
Chris Lattner authored
Require 'simplified' loops, not just raw natural loops. This fixes CodeExtractor/2004-03-13-LoopExtractorCrash.ll llvm-svn: 12381
-
Chris Lattner authored
Make sure that the file interface header (IPO.h) is included first remove dead #incldue llvm-svn: 12375
-
Chris Lattner authored
llvm-svn: 12373
-
Chris Lattner authored
llvm-svn: 12372
-
Chris Lattner authored
llvm-svn: 12368
-
Chris Lattner authored
* Be a lot more accurate about what the effects will be when inlining a call to a function when an argument is an alloca. * Dramatically reduce the penalty for inlining a call in a large function. This heuristic made it almost impossible to inline a function into a large function, no matter how small the callee is. llvm-svn: 12363
-
- Mar 08, 2004
-
-
Chris Lattner authored
This allows pointers to aggregate objects, whose elements are only read, to be promoted and passed in by element instead of by reference. This can enable a LOT of subsequent optimizations in the caller function. It's worth pointing out that this stuff happens a LOT of C++ programs, because objects in templates are generally passed around by reference. When these templates are instantiated on small aggregate or scalar types, however, it is more efficient to pass them in by value than by reference. This transformation triggers most on C++ codes (e.g. 334 times on eon), but does happen on C codes as well. For example, on mesa it triggers 72 times, and on gcc it triggers 35 times. this is amazingly good considering that we are using 'basicaa' so far. llvm-svn: 12202
-
- Mar 07, 2004
-
-
Chris Lattner authored
llvm-svn: 12200
-
Chris Lattner authored
llvm-svn: 12198
-
Chris Lattner authored
llvm-svn: 12195
-
Chris Lattner authored
variables. llvm-svn: 12193
-
- Mar 01, 2004
-
-
Misha Brukman authored
* Removing extraneous empty space and empty comment lines llvm-svn: 12014
-
- Feb 27, 2004
-
-
Chris Lattner authored
llvm-svn: 11919
-
- Feb 26, 2004
-
-
Chris Lattner authored
multiple type names for the same structural type. Make DTE eliminate all but one of the type names llvm-svn: 11879
-
- Feb 25, 2004
-
-
Chris Lattner authored
assume that if they don't intend to write to a global variable, that they would mark it as constant. However, there are people that don't understand that the compiler can do nice things for them if they give it the information it needs. This pass looks for blatently obvious globals that are only ever read from. Though it uses a trivially simple "alias analysis" of sorts, it is still able to do amazing things to important benchmarks. 253.perlbmk, for example, contains several ***GIANT*** function pointer tables that are not marked constant and should be. Marking them constant allows the optimizer to turn a whole bunch of indirect calls into direct calls. Note that only a link-time optimizer can do this transformation, but perlbmk does have several strings and other minor globals that can be marked constant by this pass when run from GCCAS. 176.gcc has a ton of strings and large tables that are marked constant, both at compile time (38 of them) and at link time (48 more). Other benchmarks give similar results, though it seems like big ones have disproportionally more than small ones. This pass is extremely quick and does good things. I'm going to enable it in gccas & gccld. Not bad for 50 SLOC. llvm-svn: 11836
-
- Feb 13, 2004
-
-
Chris Lattner authored
llvm-svn: 11383
-
- Feb 09, 2004
-
-
Chris Lattner authored
llvm-svn: 11229
-
Chris Lattner authored
llvm-svn: 11228
-
Chris Lattner authored
llvm-svn: 11224
-
- Feb 08, 2004
-
-
Chris Lattner authored
llvm-svn: 11202
-