aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2004-01-14Fix bug in previous checkin: Demorgan would be ashamed of me, I need toChris Lattner
lay off the crack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10855 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Eliminate the isStringCompatible function, using ConstantArray::isString.Chris Lattner
It's not clear why the code was looking for signed chars < 0, but it can't matter to the assembler anyway, so the check goes away. This also fixes compatibility with arrays of [us]byte that have constantexprs in them. Also slightly restructure some code to be cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10854 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Eliminate the isStringCompatible function, using ConstantArray::isString.Chris Lattner
It's not clear why the code was looking for signed chars < 0, but it can't matter to the assembler anyway, so the check goes away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10853 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Use new methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10852 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Implement ConstantArray::isStringChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10851 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Add new ConstantArray::isString(), as the conditions for using getString()Chris Lattner
are complex enough to check that it should be a seperate method. While I'm here, improve ConstantArray::getNullValue a bit, though the FIXME is still quite valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10850 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Ok, I can't handle it. This is a temporary checkin of a ton of statistics thatChris Lattner
i'm using in my work to reduce the bytecode file sizes. These will eventually be removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10849 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Remove support for the pre-1.0 bytecode version #1. This will becomeChris Lattner
the bytecode revision generated by LLVM 1.2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10848 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Properly update #intervals statistic.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10847 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Fix InstCombine/2004-01-13-InstCombineInvokePHI.ll, which also fixes lotsChris Lattner
of C++ programs in Shootout-C++, including lists1 and moments, etc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10845 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Don't pass anything to the IntrinsicLowering class that is not_intrinsic,Brian Gaeke
because that makes it abort. Also, fix a typo in a comment. This checkin brought to you by the "It only takes about 30 seconds to run ENABLE_LLI tests on Shootout on zion, even if they all dump core" fund. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10844 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14new testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10843 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Fix check. PHI nodes must be handled specially, of course.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10842 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Tighten up verifier checks. The result of an invoke instruction onlyChris Lattner
dominates the normal destination, not the exceptional dest (ie, the result of a call is undefined on an exception) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10841 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Make sure to verify the result before writing out the bytecode file. Not doingChris Lattner
so can cause obscure errors downstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10840 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14finegrainify namespacificationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10839 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Toggle sense of flagChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10838 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14The only clients of the slot calculator are now the asmwriter and bcwriter.Chris Lattner
Since this really only makes sense for these two, change hte instance variable to reflect whether we are writing a bytecode file or not. This makes it reasonable to add bcwriter specific stuff to it as necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10837 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Fix bug in LiveIntervals::Interval::overlaps andAlkis Evlogimenos
LiveIntervals::Interval::liveAt. Both were considering the live ranges closed in the end, when they are actually open. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10835 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14Improve debugging output.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10834 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Fix miscomputation of live intervals. The catch is that registers canAlkis Evlogimenos
be dead at the defining instruction but can only be killed in subsequent ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10833 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13You know you like Makefiles with fewer variables. Next up on the victim listBrian Gaeke
is TOOLS, which is how you say LLVMTOOLCURRENT in Oldspeak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10832 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Remove allocatable registers vector. It is already provided byAlkis Evlogimenos
LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10830 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Get rid of dead defns of LCC, LCXX, LAS, as per FIXME.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10829 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Fix overzealous fixme fixingBrian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10827 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Remove dead definitions of NATGCC and CP, and dead .tll, .tbc rules.Brian Gaeke
Make should continue even if compilation cmds fail, for the sake of the nightly tester, so use minuses on them. Use LLVMAS, LLVMGCC, LLVMGXX instead of LAS, LCC, LCXX (as per FIXME). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10825 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Cleanup debugging output.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10824 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Finegrainify namespacificationChris Lattner
Using the SlotCalculator is total overkill for this file, a simple map will suffice. Why doesn't this use the NameMangler interface? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10823 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Fix output of live intervals to show correctly its closed, openAlkis Evlogimenos
ranges, i.e. [a,b) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10822 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Remove unneeded check (with the recent change in live variables a useAlkis Evlogimenos
of a physical register is always dominated by a def). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10821 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Indentation and whitespace cleanups.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10820 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Fix bug introduced by previous commit: check if fixed intervalsAlkis Evlogimenos
overlap before adding their spill weight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10819 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Remove dump-input option.Brian Gaeke
Make addPassesToEmitAssembly() look slightly more like addPassesToJITCompile(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10818 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Regenerated using autoheader-2.57.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10817 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Simplify configure rules. (I don't know if anyone else cares...)Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10816 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Whoopsie. I should remember to use aclocal next time.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10815 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Remove and/or shorten many comments in configure.ac.Brian Gaeke
Remove checks for many common Unix programs. Our build process currently assumes they are there and makes no provisions for any other world-views. (We can add some of these checks back at some later time if it should prove useful, but right now, we do not need to check to see whether "rm" exists.) Remove checks for many common standard C headers and functions. We assume ISO/ANSI C++, and we always use the <cfoo> versions of ANSI C's <foo.h> headers, so these checks will not help anything. Edit configure's warning messages for clarity and content. Change checks for "optional" programs to default to using "true" instead of "false", so that a failure to find, e.g., etags, will be less likely to result in make failing. No longer shall we check for --enable-purify or --with-purify options. No longer shall we propagate these to the Makefiles. configure regenerated using autoconf-2.57. Please feel free to send me any questions or comments you have. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10814 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Correctly compute live variable information for physical registersAlkis Evlogimenos
when an implicitely defined register is later used by an alias. For example: call foo %reg1024 = mov %AL The call implicitely defines EAX but only AL is used. Before this fix no information was available on AL. Now EAX and all its aliases except AL get defined and die at the call instruction whereas AL lives to be killed by the assignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10813 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13Implement a bunch of symbolic constant folding opportunities. This implementsChris Lattner
testcase test/Regression/Assembler/ConstantExprFold.llx Note that these kinds of things only rarely show up in source code, but are exceedingly common in the intermediate stages of algorithms like SCCP. By folding things (especially relational operators) that use symbolic constants, we are able to speculatively fold more conditional branches, which can lead to some big simplifications. It would be easy to add a lot more special cases here, so if you notice SCCP missing anything "obvious", you know what to make smarter. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10812 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-13New testcase for symbolic constant folding opportunities that LLVM should get.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10811 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Implement new Instruction::isRelational methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10810 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Add new methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10809 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Rearrange and comment code better. No functionality changesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10808 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Rename ConstantHandling.* -> ConstantFolding.*Chris Lattner
Move a bunch of (now) private stuff from ConstantFolding.h into ConstantFolding.cpp. This _finally_ gets us to a place where we have a sane constant folder. The rules are: 1. LLVM clients now use ConstantExpr::get* methods to fold constants. If they cannot be folded, a constantexpr is created, so these methods always return valid Constant*'s. 2. The implementation of ConstantExpr::get* uses the functions exposed by ConstantFolding.h to try to fold constants. If they cannot be folded, they should return a null pointer. 3. The implementation of ConstantFolding can do whatever it wants, and only has one client (Constants.cpp) This cuts down on the wierd dependencies, and eliminates the two interfaces. The old constanthandling interface was especially bad for clients to use because almost none of them took the failure condition into consideration, thus leading to obscure problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10807 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Remove a whole bunch more ugliness. This is actually getting to the point ofChris Lattner
this whole refactoring: allow constant folding methods to return something other than predefined classes, allow them to return generic Constant*'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10806 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Move ConstantHandling.h into lib/VMCore and out of include/llvmChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10805 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Move this file to lib/VMCoreChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10804 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Eliminate a lot of out-of-date comments, and all of the wierd overloadedChris Lattner
operator constant folding stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10803 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Eliminate usage of the wierd overloaded operator constant foldersChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10802 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-12Eliminate ConstantFoldShiftInstruction referenceChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10801 91177308-0d34-0410-b5e6-96231b3b80d8