| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 12416
|
| |
|
|
|
|
|
|
| |
sin/cos/strlen calls and stuff. This implements:
LICM/call_sink_pure_function.ll
LICM/call_sink_const_function.ll
llvm-svn: 12415
|
| |
|
|
| |
llvm-svn: 12414
|
| |
|
|
| |
llvm-svn: 12413
|
| |
|
|
| |
llvm-svn: 12412
|
| |
|
|
| |
llvm-svn: 12411
|
| |
|
|
|
|
| |
use of the boolean queries
llvm-svn: 12410
|
| |
|
|
| |
llvm-svn: 12409
|
| |
|
|
| |
llvm-svn: 12408
|
| |
|
|
|
|
| |
in common cases.
llvm-svn: 12407
|
| |
|
|
|
|
| |
considered an input.
llvm-svn: 12406
|
| |
|
|
|
|
|
|
| |
Simplify the input/output finder. All elements of a basic block are
instructions. Any used arguments are also inputs. An instruction can only
be used by another instruction.
llvm-svn: 12405
|
| |
|
|
| |
llvm-svn: 12404
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 12399
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 12397
|
| |
|
|
| |
llvm-svn: 12396
|
| |
|
|
| |
llvm-svn: 12395
|
| |
|
|
| |
llvm-svn: 12394
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
| |
MachineBasicBlock::iterator take a MachineInstr*.
llvm-svn: 12392
|
| |
|
|
| |
llvm-svn: 12391
|
| |
|
|
|
|
| |
the command line, and the single loop extractor, usable by bugpoint
llvm-svn: 12390
|
| |
|
|
|
|
| |
Doxygenify
llvm-svn: 12389
|
| |
|
|
| |
llvm-svn: 12388
|
| |
|
|
|
|
|
| |
code duplication. Also, don't use ReduceMiscompilingFunctions::TestFuncs
to print out the final message.
llvm-svn: 12387
|
| |
|
|
|
|
| |
instruction to make the API more flexible.
llvm-svn: 12386
|
| |
|
|
| |
llvm-svn: 12385
|
| |
|
|
|
|
| |
be non-empty! This fixes LowerSwitch/2004-03-13-SwitchIsDefaultCrash.ll
llvm-svn: 12384
|
| |
|
|
| |
llvm-svn: 12383
|
| |
|
|
| |
llvm-svn: 12382
|
| |
|
|
|
|
|
| |
Require 'simplified' loops, not just raw natural loops. This fixes
CodeExtractor/2004-03-13-LoopExtractorCrash.ll
llvm-svn: 12381
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
situations where there is a branch that goes to a block in another function.
llvm-svn: 12379
|
| |
|
|
|
|
| |
curly braceage
llvm-svn: 12378
|
| |
|
|
| |
llvm-svn: 12377
|
| |
|
|
| |
llvm-svn: 12376
|
| |
|
|
|
|
|
| |
Make sure that the file interface header (IPO.h) is included first
remove dead #incldue
llvm-svn: 12375
|
| |
|
|
| |
llvm-svn: 12374
|
| |
|
|
| |
llvm-svn: 12373
|
| |
|
|
| |
llvm-svn: 12372
|
| |
|
|
| |
llvm-svn: 12371
|
| |
|
|
| |
llvm-svn: 12368
|
| |
|
|
| |
llvm-svn: 12367
|
| |
|
|
| |
llvm-svn: 12366
|
| |
|
|
|
|
|
| |
Fix InstCombine/2004-03-13-InstCombineInfLoop.ll which caused an infinite
loop compiling (I think) povray.
llvm-svn: 12365
|