aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* * Added basic support for JITing functions, basic blocks, instruction encoding,Misha Brukman2004-10-211-20/+169
| | | | | | | | | including registers, constants, and partial support for global addresses * The JIT is disabled by default to allow building llvm-gcc, which wants to test running programs during configure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17149 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't clear or sign extend bool->int. This fires a few dozen times on the ↵Nate Begeman2004-10-201-0/+17
| | | | | | test suite git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17147 91177308-0d34-0410-b5e6-96231b3b80d8
* Explain what this pass does.Brian Gaeke2004-10-201-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17146 91177308-0d34-0410-b5e6-96231b3b80d8
* Small performance improvement in generated C code:John Criswell2004-10-202-2/+46
| | | | | | | | | | | | | Instead of unconditionally copying all phi node values into temporaries for all successor blocks, generate code that will determine what successor block will be called and then copy only those phi node values needed by the successor block. This seems to cut down namd execution time from being 8% higher than GCC to 4% higher than GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17144 91177308-0d34-0410-b5e6-96231b3b80d8
* * Add baseline structural JIT code, but disable the JIT to allow llvm-gcc buildsMisha Brukman2004-10-192-16/+350
| | | | | | | | | - Support added for functions, basic blocks, constant pool, constants, registers, and some basic support for globals, all untested * Turn assert()s into abort()s so that unimplemented functions fail in release git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17143 91177308-0d34-0410-b5e6-96231b3b80d8
* Hrm, some people complain when the compiler cheerfully tells them what it'sChris Lattner2004-10-191-1/+0
| | | | | | | doing... I guess they're right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17142 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some grammarMisha Brukman2004-10-191-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17141 91177308-0d34-0410-b5e6-96231b3b80d8
* If we're going to make the braces of functions line up for ease of readabilityMisha Brukman2004-10-191-6/+6
| | | | | | | and aesthetic reasons, might as well finish the job git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17140 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary spaces in function signatureMisha Brukman2004-10-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17139 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify mapping info generation. In particular, the LLVM-to-MachineInstr mapBrian Gaeke2004-10-191-86/+3
| | | | | | | | is no longer emitted, and we do not reference any MachineCodeForInstruction information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17138 91177308-0d34-0410-b5e6-96231b3b80d8
* * Fit constructor initializer on a single lineMisha Brukman2004-10-191-3/+2
| | | | | | | * Delete blank chars at end of line to fit into 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17137 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial automake generated Makefile templateReid Spencer2004-10-1879-0/+53396
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17136 91177308-0d34-0410-b5e6-96231b3b80d8
* Move code to redefine INT64_{MIN,MAX} on AIX/PowerPC to a separate header,Misha Brukman2004-10-182-10/+31
| | | | | | | because #undef becomes commented out in DataTypes.h.in due to autoheader git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17135 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial implementation of the strength reduction for GEP instructions inNate Begeman2004-10-182-1/+257
| | | | | | | | | | | | | | | | | | loops. This optimization is not turned on by default yet, but may be run with the opt tool's -loop-reduce flag. There are many FIXMEs listed in the code that will make it far more applicable to a wide range of code, but you have to start somewhere :) This limited version currently triggers on the following tests in the MultiSource directory: pcompress2: 7 times cfrac: 5 times anagram: 2 times ks: 6 times yacr2: 2 times git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17134 91177308-0d34-0410-b5e6-96231b3b80d8
* * AIX on Power defines INT64_MIN and INT64_MAX in ways that annoy GCC, soMisha Brukman2004-10-181-3/+14
| | | | | | | | special-case those definitions * Add comments in #ifdef/#else/#endif clauses for ease of reading git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17132 91177308-0d34-0410-b5e6-96231b3b80d8
* AIX does not have mkdtemp() so emulate its behavior using mktemp() and mkdir()Misha Brukman2004-10-181-5/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17131 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix miscompilations in the SparcV9 backend that were induced by this patch:Chris Lattner2004-10-181-2/+12
| | | | | | | http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041011/019311.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17130 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve compatibility with VC++, patch contributed by Morten Ofstad!Chris Lattner2004-10-182-1/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17126 91177308-0d34-0410-b5e6-96231b3b80d8
* Get this file compiling with VC++, patch contributed by Morten Ofstad. ↵Chris Lattner2004-10-181-0/+1
| | | | | | Thanks Morten! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17125 91177308-0d34-0410-b5e6-96231b3b80d8
* Declare a function in the correct namespace.Reid Spencer2004-10-181-1/+1
| | | | | | | Patch contributed by Morten Ofstad. Thanks Morten! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17124 91177308-0d34-0410-b5e6-96231b3b80d8
* Correction to allow compilation with Visual C++.Reid Spencer2004-10-184-6/+8
| | | | | | | Patch contributed by Morten Ofstad. Thanks Morten! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17123 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify code by deleting instructions that preceed unreachable instructions.Chris Lattner2004-10-181-1/+101
| | | | | | | | Simplify code by simplifying terminators that branch to blocks that start with an unreachable instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17116 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcaseChris Lattner2004-10-181-0/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17115 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually link all the analysis passes and their dependencies.Reid Spencer2004-10-181-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17114 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove extra comma.Reid Spencer2004-10-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17113 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually link in all the analysis passes.Reid Spencer2004-10-181-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17112 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn store -> null/undef into the LLVM unreachable instruction! This simpleChris Lattner2004-10-181-0/+27
| | | | | | | | | change hacks off 10K of bytecode from perlbmk (.5%) even though the front-end is not generating them yet and we are not optimizing the resultant code. This isn't too bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17111 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn things with obviously undefined semantics into 'store -> null'Chris Lattner2004-10-181-26/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17110 91177308-0d34-0410-b5e6-96231b3b80d8
* My friend the invoke instruction does not dominate all basic blocks if itChris Lattner2004-10-181-1/+2
| | | | | | | occurs in the entry node of a function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17109 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug that occurs when the constant value is the result of an invoke. InChris Lattner2004-10-181-5/+6
| | | | | | | | particular, invoke ret values are only live in the normal dest of the invoke not in the unwind dest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17108 91177308-0d34-0410-b5e6-96231b3b80d8
* Print a semicolon for the unreacahble instruction. This fixes problemsChris Lattner2004-10-172-2/+2
| | | | | | | where C requires semicolons in some cases to indicate null statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17107 91177308-0d34-0410-b5e6-96231b3b80d8
* Getting ADCE to interact well with unreachable instructions seems like a ↵Chris Lattner2004-10-171-2/+3
| | | | | | | | | | | | nontrivial exercise that I'm not interested in tackling right now. Just punt and treat them like unwind's. This 'fixes' test/Regression/Transforms/ADCE/unreachable-function.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17106 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase that ADCE shouldn't crash onChris Lattner2004-10-171-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17105 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix Regression/Transforms/Inline/2004-10-17-InlineFunctionWithoutReturn.llChris Lattner2004-10-171-4/+8
| | | | | | | | If a function had no return instruction in it, and the result of the inlined call instruction was used, we would crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17104 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase that crashes the inlinerChris Lattner2004-10-171-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17103 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass -single_module option to gcc when linking dynamic libraries for use ↵Nate Begeman2004-10-172-0/+2
| | | | | | with bugpoint, so that we can bugpoint multiple .cp files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17102 91177308-0d34-0410-b5e6-96231b3b80d8
* Generate correct stubs for weak-linked symbolsNate Begeman2004-10-171-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17101 91177308-0d34-0410-b5e6-96231b3b80d8
* fold gep undef, ... -> undefChris Lattner2004-10-171-1/+8
| | | | | | | This comes up many times in perlbmk and probably others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17100 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove printout, realize that instructions in the entry block dominate allChris Lattner2004-10-171-6/+6
| | | | | | | other blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17099 91177308-0d34-0410-b5e6-96231b3b80d8
* When inserting PHI nodes, don't insert any phi nodes that are obviouslyChris Lattner2004-10-171-10/+31
| | | | | | | | | | unneccesary. This allows us to delete several hundred phi nodes of the form PHI(x,x,x,undef) from 253.perlbmk and probably other programs as well. This implements Mem2Reg/UndefValuesMerge.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17098 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase, no PHI should be inserted.Chris Lattner2004-10-171-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17097 91177308-0d34-0410-b5e6-96231b3b80d8
* Enhance hasConstantValue to ignore undef values in phi nodes. This allows itChris Lattner2004-10-171-2/+3
| | | | | | | to think that PHI[4, undef] == 4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17096 91177308-0d34-0410-b5e6-96231b3b80d8
* hasConstantValue will soon return instructions that don't dominate the PHI node,Chris Lattner2004-10-172-20/+39
| | | | | | | so prepare for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17095 91177308-0d34-0410-b5e6-96231b3b80d8
* The first hunk corrects a bug when printing undef null values. We would printChris Lattner2004-10-172-12/+22
| | | | | | | | | 0->field, which is illegal. Now we print ((foo*)0)->field. The second hunk is an optimization to not print undefined phi values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17094 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't print stuff out from the code generator. This broke the JIT horriblyChris Lattner2004-10-171-1/+0
| | | | | | | last night. :) bork! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17093 91177308-0d34-0410-b5e6-96231b3b80d8
* Add HAVE_BZLIB_H and HAVE_ZLIB_H tests.Reid Spencer2004-10-171-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17092 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to reflect building zlib for LLVMReid Spencer2004-10-171-151/+673
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17091 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing targets for install/cleanReid Spencer2004-10-171-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17090 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the library name SparcV9 specificReid Spencer2004-10-171-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17089 91177308-0d34-0410-b5e6-96231b3b80d8
* Consolidate the definitionsReid Spencer2004-10-171-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17088 91177308-0d34-0410-b5e6-96231b3b80d8