- Mar 15, 2004
-
-
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
-
Chris Lattner authored
* Don't insert a branch to the switch instruction after the call, just make it a single block. * Insert the new alloca instructions in the entry block of the original function instead of having them execute dynamically * Don't make the default edge of the switch instruction go back to the switch. The loop extractor shouldn't create new loops! * Give meaningful names to the alloca slots and the reload instructions * Some minor code simplifications llvm-svn: 12402
-
Chris Lattner authored
This also implements a two minor improvements: * Don't insert live-out stores IN the region, insert them on the code path that exits the region * If the region is exited to the same block from multiple paths, share the switch statement entry, live-out store code, and the basic block. llvm-svn: 12401
-
- Mar 14, 2004
-
-
Chris Lattner authored
a member of the class. While we're at it, turn the collection into a set instead of a vector to improve efficiency and make queries simpler. llvm-svn: 12400
-
Chris Lattner authored
llvm-svn: 12399
-
Chris Lattner authored
miscompiled, try to use the loop extractor to reduce the program down to a loop nest that is being miscompiled. In practice, the loop extractor appears to have too many bugs for this to be useful, but hopefully they will be fixed soon... llvm-svn: 12398
-
Chris Lattner authored
llvm-svn: 12397
-
Chris Lattner authored
llvm-svn: 12396
-
Chris Lattner authored
llvm-svn: 12395
-
Chris Lattner authored
llvm-svn: 12394
-
Chris Lattner authored
* Make several methods of bugdriver global functions (ParseInputFile, PrintFunctionList) * Make PrintFunctionList truncate the output after 10 entries, like the crash debugger did. This allows code sharing. * Add a couple of methods to BugDriver that allows us to eliminate some friends * Improve comments in ExtractFunction.cpp * Make classes that used to be friends up bugdriver now live in anon namespaces * Rip a bunch of functionality in the miscompilation tester into a new TestMergedProgram function for future code sharing. * Fix a bug in the miscompilation tester induced in my last checkin llvm-svn: 12393
-
Alkis Evlogimenos authored
MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392
-
Chris Lattner authored
llvm-svn: 12391
-
Chris Lattner authored
the command line, and the single loop extractor, usable by bugpoint llvm-svn: 12390
-
Chris Lattner authored
Doxygenify llvm-svn: 12389
-
Chris Lattner authored
llvm-svn: 12388
-
Chris Lattner authored
code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs to print out the final message. llvm-svn: 12387
-
Alkis Evlogimenos authored
instruction to make the API more flexible. llvm-svn: 12386
-
Chris Lattner authored
llvm-svn: 12385
-
Chris Lattner authored
be non-empty! This fixes LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll llvm-svn: 12384
-
Chris Lattner authored
llvm-svn: 12383
-
Chris Lattner authored
llvm-svn: 12382
-
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
loop information won't see it, and we could have unreachable blocks pointing to the non-header node of blocks in a natural loop. This isn't tidy, so have the loopsimplify pass clean it up. llvm-svn: 12380
-
Chris Lattner authored
situations where there is a branch that goes to a block in another function. llvm-svn: 12379
-
Chris Lattner authored
curly braceage llvm-svn: 12378
-
Chris Lattner authored
llvm-svn: 12377
-
Chris Lattner authored
llvm-svn: 12376
-
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: 12374
-
Chris Lattner authored
llvm-svn: 12373
-
Chris Lattner authored
llvm-svn: 12372
-
Chris Lattner authored
llvm-svn: 12371
-
Chris Lattner authored
llvm-svn: 12368
-
Chris Lattner authored
llvm-svn: 12367
-
Chris Lattner authored
llvm-svn: 12366
-
Chris Lattner authored
Fix InstCombine/2004-03-13-InstCombineInfLoop.ll which caused an infinite loop compiling (I think) povray. llvm-svn: 12365
-
Chris Lattner authored
llvm-svn: 12364
-
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 13, 2004
-
-
Chris Lattner authored
On the testcase from GCC PR12440, which has a LOT of loops (1392 of which require preheaders to be inserted), this speeds up the loopsimplify pass from 1.931s to 0.1875s. The loop in question goes from 1.65s -> 0.0097s, which isn't bad. All of these times are a debug build. This adds a dependency on DominatorTree analysis that was not there before, but we always had dominatortree available anyway, because LICM requires both loop simplify and DT, so this doesn't add any extra analysis in practice. llvm-svn: 12362
-