aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Keep transitively-required passes alive for queries to work after the initialMisha Brukman2004-03-121-1/+10
| | | | | | | user pass is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12332 91177308-0d34-0410-b5e6-96231b3b80d8
* Evaluate ModRef information in addition to regular ol' pointer analysis.Misha Brukman2004-03-121-24/+93
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12331 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement getModRefInfo() for DSA to calculate whether a function modifies orMisha Brukman2004-03-121-5/+39
| | | | | | | references a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12330 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for checking the select instructionChris Lattner2004-03-121-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12325 91177308-0d34-0410-b5e6-96231b3b80d8
* Know the opcode name of the select instructionChris Lattner2004-03-121-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12324 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for select constant expressions. Use reserve a bit more to avoidChris Lattner2004-03-121-0/+35
| | | | | | | memory wasteage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12323 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new functionChris Lattner2004-03-122-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12322 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the constant folder how to do select instructionsChris Lattner2004-03-121-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12321 91177308-0d34-0410-b5e6-96231b3b80d8
* Print select instructions correctlyChris Lattner2004-03-121-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12320 91177308-0d34-0410-b5e6-96231b3b80d8
* Add constant folding wrapper support for select instructions.Chris Lattner2004-03-121-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12319 91177308-0d34-0410-b5e6-96231b3b80d8
* Add sccp support for select instructionsChris Lattner2004-03-121-0/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12318 91177308-0d34-0410-b5e6-96231b3b80d8
* Add trivial optimizations for select instructionsChris Lattner2004-03-121-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12317 91177308-0d34-0410-b5e6-96231b3b80d8
* ADd support for select instructionsChris Lattner2004-03-122-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12316 91177308-0d34-0410-b5e6-96231b3b80d8
* Write select instructions to bytecodeChris Lattner2004-03-121-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12315 91177308-0d34-0410-b5e6-96231b3b80d8
* Read select instrs from bytecodeChris Lattner2004-03-121-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12314 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow parsing select instruction and constant exprChris Lattner2004-03-122-1/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12313 91177308-0d34-0410-b5e6-96231b3b80d8
* Make code more readable.Misha Brukman2004-03-122-70/+62
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12305 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix indentation.Misha Brukman2004-03-111-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12298 91177308-0d34-0410-b5e6-96231b3b80d8
* Move implementations of functions here, which avoids #including <cstdlib> in theMisha Brukman2004-03-111-0/+86
| | | | | | | header file and all those who #include it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12297 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of the abort in PhyRegAlloc::finishSavingState().Brian Gaeke2004-03-111-5/+6
| | | | | | | | | Make an explicit call to it from runOnFunction() if we know we're supposed to write into the global. This is lame (esp. the const_cast), but it solves the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12291 91177308-0d34-0410-b5e6-96231b3b80d8
* Give pass a nameBrian Gaeke2004-03-111-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12290 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix compilation on Sparc: assert(0) => abort()Misha Brukman2004-03-112-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12289 91177308-0d34-0410-b5e6-96231b3b80d8
* In PhyRegAlloc::saveState(), dump Arguments' saved-state, and try toBrian Gaeke2004-03-112-10/+31
| | | | | | | | | | | | | | make the output more compact. Divorce state-saving from the doFinalization method; for some reason it's not getting called when I want it to, at Reoptimizer time. Put the guts in PhyRegAlloc::finishSavingState(). Put an abort() in it so that I can be really really sure that it's getting called. Update comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12286 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove ghostly directory from the buildBrian Gaeke2004-03-111-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12285 91177308-0d34-0410-b5e6-96231b3b80d8
* Move all the SaveState options and stuff inton one spot at the top of the file.Brian Gaeke2004-03-101-8/+10
| | | | | | | | | De-constify SaveStateToModule; we have to set both it and SaveRegAllocState explicitly in the reoptimizer. Make SaveRegAllocState an 'external location' option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12278 91177308-0d34-0410-b5e6-96231b3b80d8
* Only call verifySavedState if SaveRegAllocState is set AND debugging flag is on.Brian Gaeke2004-03-101-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12277 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR284: [indvars] Induction variable analysis violates LLVM invariantsChris Lattner2004-03-101-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12275 91177308-0d34-0410-b5e6-96231b3b80d8
* My fix for PR274 broke the build on Darwin/PPC. As I'm fairly certain thisBrian Gaeke2004-03-101-2/+4
| | | | | | | | bug only affects Linux systems that use GLIBC, I'm going to put ifdefs around the array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12269 91177308-0d34-0410-b5e6-96231b3b80d8
* implement new methodChris Lattner2004-03-091-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12264 91177308-0d34-0410-b5e6-96231b3b80d8
* Spill explicit physical register defs as well.Alkis Evlogimenos2004-03-091-3/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12260 91177308-0d34-0410-b5e6-96231b3b80d8
* Check if printing of implicit uses is required for all types of shiftAlkis Evlogimenos2004-03-092-0/+6
| | | | | | | instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12258 91177308-0d34-0410-b5e6-96231b3b80d8
* Address PR274 - '[JIT] Programs cannot resolve the fstat function'Brian Gaeke2004-03-091-0/+18
| | | | | | | | | | by trying to get the compiler to generate an undefined reference for it and related functions which live in libc_nonshared.a on Linux. Linkers... sigh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12256 91177308-0d34-0410-b5e6-96231b3b80d8
* Hmm, who left this sitting around in my treeBrian Gaeke2004-03-094-16/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12255 91177308-0d34-0410-b5e6-96231b3b80d8
* Differentiate between extended precision floats (80-bit) and double ↵Alkis Evlogimenos2004-03-091-1/+1
| | | | | | precision floats (64-bit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12254 91177308-0d34-0410-b5e6-96231b3b80d8
* Use newly added API to emit bytes for instructions that gas misassemblesAlkis Evlogimenos2004-03-092-132/+106
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12253 91177308-0d34-0410-b5e6-96231b3b80d8
* Add emitInstruction() API so that we can get the bytes of a simple instructionAlkis Evlogimenos2004-03-092-3/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12252 91177308-0d34-0410-b5e6-96231b3b80d8
* Constify things a bitAlkis Evlogimenos2004-03-091-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12251 91177308-0d34-0410-b5e6-96231b3b80d8
* Change PhyRegAlloc::saveStateForValue()'s arg type to deal withBrian Gaeke2004-03-081-1/+1
| | | | | | | AllocInfo.Instruction becoming an int. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12247 91177308-0d34-0410-b5e6-96231b3b80d8
* Save argument list alloc state by recording it as the operands of InstructionBrian Gaeke2004-03-081-2/+10
| | | | | | | #-1. Other minor changes to deal with AllocInfo.Instruction becoming an int. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12246 91177308-0d34-0410-b5e6-96231b3b80d8
* Make AllocInfo's Instruction an int, so that we can overload it for arguments.Brian Gaeke2004-03-081-4/+4
| | | | | | | (Instruction #-1's operands = argument list). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12245 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch to using edge profiling information as the basic source of profile infoChris Lattner2004-03-082-5/+73
| | | | | | | from using basic block counts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12242 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor implementationsChris Lattner2004-03-082-10/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12240 91177308-0d34-0410-b5e6-96231b3b80d8
* Import the trace class from the reoptimizerChris Lattner2004-03-081-0/+50
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12236 91177308-0d34-0410-b5e6-96231b3b80d8
* If we have edge counts, we can produce block counts. I've verified thatChris Lattner2004-03-081-11/+67
| | | | | | | | using an edge profile to produce block counts gives the exact same numbers as using a block count directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12232 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust to new interfaceChris Lattner2004-03-081-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12231 91177308-0d34-0410-b5e6-96231b3b80d8
* Add initial support for reading edge counts. This will be improved to enableChris Lattner2004-03-081-0/+29
| | | | | | | translation of edge counts into block/function counts when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12229 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for edge profilingChris Lattner2004-03-081-0/+94
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12225 91177308-0d34-0410-b5e6-96231b3b80d8
* Split utility functions out of BlockProfiling.cppChris Lattner2004-03-083-85/+137
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12224 91177308-0d34-0410-b5e6-96231b3b80d8
* finegrainify namespacificationChris Lattner2004-03-081-14/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12221 91177308-0d34-0410-b5e6-96231b3b80d8
* Insert functions into the module promptly, not lazily. This fixes a bugChris Lattner2004-03-081-11/+2
| | | | | | | I introduced last night. Note to self: test the *correct* tree... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12220 91177308-0d34-0410-b5e6-96231b3b80d8