summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Implement the TargetMachine::getJITStubForFunction method for X86, finegrainifyChris Lattner2003-12-122-4/+13
| | | | | | namespacification. llvm-svn: 10430
* Since we are using a gep_type_iterator, we apparently must get the typeBrian Gaeke2003-12-121-2/+1
| | | | | | | index by using I.getOperand() here. This was failing an assertion on basically every struct access. llvm-svn: 10426
* Throw better error messages, by calling strerror(errno) when weBrian Gaeke2003-12-121-4/+9
| | | | | | get an error inside the bytecode reader. llvm-svn: 10415
* Factor out some duplicated code, implement the rest of the cases inChris Lattner2003-12-111-43/+40
| | | | | | BasicAA/2003-12-11-ConstExprGEP.ll llvm-svn: 10412
* Fix PR86. This makes basicaa _SIGNIFICANLY_ more aggressive with ↵Chris Lattner2003-12-111-121/+251
| | | | | | getelementptr's llvm-svn: 10410
* Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other ↵Chris Lattner2003-12-111-2/+11
| | | | | | known problems in the universe. llvm-svn: 10409
* Finegrainify namespacificationChris Lattner2003-12-111-5/+23
| | | | | | Add new -print-cfg-only pass llvm-svn: 10407
* verifyFunction depends on dominator info, which levelraise does not declareChris Lattner2003-12-111-5/+0
| | | | | | | | | that it needs. This is pretty scary code! This fixes Regression.Transforms.LevelRaise.2002-07-16-SourceAndDestCrash Regression.Transforms.LevelRaise.2002-07-31-AssertionFailure llvm-svn: 10406
* Fix a glaring bugChris Lattner2003-12-111-0/+1
| | | | llvm-svn: 10400
* Realize the gep P, <zeros> must aliases P.Chris Lattner2003-12-111-1/+11
| | | | | | This is a partial fix for PR 86 llvm-svn: 10399
* With Brian's change to AA.h we can now clean out this uglynessChris Lattner2003-12-111-1/+1
| | | | llvm-svn: 10398
* IncludeFile hack to pull in BasicValueNumbering whenever ValueNumbering.hBrian Gaeke2003-12-111-0/+2
| | | | | | is included. llvm-svn: 10397
* In getObjectType(), doxygenify comment, and take a pointer to theBrian Gaeke2003-12-111-50/+43
| | | | | | | | | | | | | beginning of the archive member data as an argument. Get rid of ParseLongFilenameSection(), which is dead. In ReadArchiveBuffer(), implement support for 4.4BSD/MacOSX long filenames. This is kind of invasive, because they prepend the long filename to the archive member data, and then lie about the size. So we have to keep track of the real size. llvm-svn: 10392
* Turn off "attribute weak" to pacify Mac OS X's system compiler, which prints aBrian Gaeke2003-12-111-4/+25
| | | | | | warning whenever it sees it. llvm-svn: 10391
* Fix typo in comment. Add prototype for getConstantExprValue().Brian Gaeke2003-12-111-1/+3
| | | | llvm-svn: 10390
* Add support for --debug-only=interpreter, to print out instrs beforeBrian Gaeke2003-12-111-40/+144
| | | | | | | | | | | | | | | | | | interpreting them. Move support for getting the value of a ConstantExpr into getConstantExprValue(), and add support for the rest of the different kinds of ConstantExprs. (I don't think I like ConstantExprs!) This requires separate procedures executeShlInst() and executeShrInst(). Reduce the number of references to TheEE. Get rid of an old comment mentioning annotations. Fix exitCalled(), which was crashing the Interpreter. This was a leftover from the return-value code refactoring. llvm-svn: 10389
* This appears to fix Bug 172 and does not break any other feature tests orJohn Criswell2003-12-101-0/+6
| | | | | | regression tests. llvm-svn: 10388
* Fix bug: LICM/sink_multiple_exits.llChris Lattner2003-12-101-1/+1
| | | | | | Thanks for pointing this out John :) llvm-svn: 10387
* Don't allow dead instructions to stop sinking early.Chris Lattner2003-12-101-10/+9
| | | | llvm-svn: 10386
* Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llxChris Lattner2003-12-101-0/+5
| | | | llvm-svn: 10385
* Finegrainify namespacificationChris Lattner2003-12-101-11/+11
| | | | | | Fix bug: LowerInvoke/2003-12-10-Crash.llx llvm-svn: 10382
* Upon Chris's suggestion, moved the #ifdef's to the generated C code.John Criswell2003-12-101-8/+5
| | | | | | This makes LLVM and the generated C code more portable. llvm-svn: 10377
* Finegrainify namespacificationChris Lattner2003-12-101-8/+27
| | | | | | | Reorder #includes Implement: IndVarsSimplify/2003-12-10-IndVarDeadCode.ll llvm-svn: 10376
* Fixed the CBE on Solaris/Sparc. We need to define the return value ofJohn Criswell2003-12-101-1/+8
| | | | | | | | the write() system call because it returns 64 bits on Solaris 64 bit, and an implicit return value of int says it returns 32 bits. Admittedly, this is a bit of a hack. llvm-svn: 10375
* Finegrainify namespacificationChris Lattner2003-12-101-22/+21
| | | | | | Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll llvm-svn: 10373
* Simplify codeChris Lattner2003-12-101-6/+1
| | | | llvm-svn: 10371
* Avoid performing two identical lookups when one will sufficeChris Lattner2003-12-101-3/+1
| | | | llvm-svn: 10370
* Make LICM itself a bit more efficient, and make the generated code more ↵Chris Lattner2003-12-101-21/+26
| | | | | | efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop llvm-svn: 10369
* Finegrainify namespacificationChris Lattner2003-12-101-4/+1
| | | | llvm-svn: 10367
* Finegrainify namespacificationChris Lattner2003-12-101-10/+8
| | | | | | Provide a context module to WriteAsOperand llvm-svn: 10366
* Implement instruction sinking out of loops. This still can do a little bitChris Lattner2003-12-101-61/+246
| | | | | | | better job, but this is the majority of the work. This implements LICM/sink*.ll llvm-svn: 10358
* Do not insert one entry PHI nodes in split exit blocks!Chris Lattner2003-12-091-13/+23
| | | | llvm-svn: 10348
* Refactor code a little bit, eliminating the gratuitous InstVisitor, whichChris Lattner2003-12-091-41/+43
| | | | | | | should make subsequent changes simpler. This also allows us to hoist vaarg and vanext instructions llvm-svn: 10342
* Fine grainify namespacificationChris Lattner2003-12-091-36/+48
| | | | | | | Code cleanups Make LICM::SafeToHoist marginally more efficient llvm-svn: 10341
* Implement: TailCallElim/accum_recursion_constant_arg.llChris Lattner2003-12-081-6/+60
| | | | | | Also make sure to clean up any PHI nodes that are inserted which are pointless. llvm-svn: 10333
* Implement: test/Regression/Transforms/TailCallElim/accum_recursion.llChris Lattner2003-12-081-12/+122
| | | | | | | | We now insert accumulator variables as necessary to eliminate tail recursion more aggressively. This is still fairly limited, but allows us to transform fib/factorial, and other functions into nice happy loops. :) llvm-svn: 10332
* implement methodChris Lattner2003-12-081-0/+7
| | | | llvm-svn: 10321
* Use the new method, though noone currently implements it any better than beforeChris Lattner2003-12-081-1/+5
| | | | llvm-svn: 10320
* Finegrainify namespacificationChris Lattner2003-12-084-17/+5
| | | | llvm-svn: 10318
* Cleanup and restructure the code to make it easier to read and maintain.Chris Lattner2003-12-081-53/+126
| | | | | | | | | | | | | | The only functionality change is that we now implement: Regression/Transforms/TailCallElim/intervening-inst.ll Which is really kinda pointless, because it means that trivially dead code does not interfere with -tce, but trivially dead code probably wouldn't be around anytime when this pass is run anyway. The point of including this change it to support other more aggressive transformations when we have the analysis capabilities to do so. llvm-svn: 10312
* Implement RaiseAllocations/FreeCastConstantExpr.llChris Lattner2003-12-071-12/+37
| | | | llvm-svn: 10305
* * Finegrainify namespacificationChris Lattner2003-12-071-4/+17
| | | | | | * Transform: free <ty>* (cast <ty2>* X to <ty>*) into free <ty2>* X llvm-svn: 10303
* The recalclulate method was a nasty hack that was once used by the -cee pass,Chris Lattner2003-12-071-16/+12
| | | | | | | which never worked itself. The cee pass still doesn't work, but it doesn't use this method anymore anyway, so eliminate the method. llvm-svn: 10302
* Completely rewrite domset, idom, and domtree implementation. Now it is basedChris Lattner2003-12-071-159/+266
| | | | | | | | | | | | | on the algorithm for directly computing immediate dominators presented in this paper: A Fast Algorithm for Finding Dominators in a Flowgraph T. Lengauer & R. Tarjan, ACM TOPLAS July 1979, pgs 121-141. This _substantially_ speeds up construction of all dominator related information. Post-dominators to follow. llvm-svn: 10301
* Finegrainify namespacificationChris Lattner2003-12-071-3/+38
| | | | | | Move method out of generic dominators construction code llvm-svn: 10299
* Make assertion stricter. Since the source operands are allocated atAlkis Evlogimenos2003-12-051-1/+1
| | | | | | | this point, the second operand must be a physical register (it cannot be a virtual one). llvm-svn: 10292
* Fix bug in register spilling when a preallocated live range overlaps aAlkis Evlogimenos2003-12-051-13/+3
| | | | | | potential register assignment. llvm-svn: 10291
* Move operator<<(std::ostream&, const LiveInterval&) out of the header file.Alkis Evlogimenos2003-12-051-0/+11
| | | | llvm-svn: 10290
* Sort live intervals by increasing start point.Alkis Evlogimenos2003-12-051-0/+1
| | | | llvm-svn: 10289
* Improve debugging output and clean up some code.Alkis Evlogimenos2003-12-041-17/+14
| | | | llvm-svn: 10288
OpenPOWER on IntegriCloud