aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2003-07-25Use the C++ <cassert> header, not the C <assert.h> headerChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7310 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25This header works with GCC 3.3Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7309 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25Use C++ headers, not C headersChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7308 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25Add includes of assertChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7307 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25Fix accessibility problems GCC 3.3Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7306 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25Add assert.h includeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7305 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25Convert to C++ style commentsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25Include vector into these two files to ensure that specializations likeVikram S. Adve
stl_bvector.h are correctly included into *anything* that includes hash_map or hash_set. ext/hash_map includes stl_vector.h directly and leaves out the specializations, causing truly nasty bugs due to inconsistent versions of vector<> being used for vector<bool> in different files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7303 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Made a bunch of cleanups, as per Chris' recommendations:Misha Brukman
* Removed unused global and member variables * Fixed comments (CodeGeneratorBug.cpp) * Check for possibly failing GCC::create() and CBE::create() * Remove generated files after diffing the output (e.g., shared object) * Instead of using std::for_each, use explicit loops as std::for_each may duplicate the functor, and ours carries state * Changed member var from cl::opt<std::string> to just std::string * Fixed doxygen comments * Fixed string comparisons to use [ str.empty() ] instead of [ str == "" ] * Cache instances of CBE and GCC in BugDriver across compilations and executions while testing tools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7302 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Cleanups:Brian Gaeke
Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator. Make Count an unsigned int, and use utostr(). Don't name parameters things that start with underscore. Mangler.h: All of the above, and also: Add Emacs mode-line. Include <set>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7301 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Factor out name-mangling from X86/Printer, which is derived from CWriter,Brian Gaeke
into this new support class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7300 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Use unified CWriter-X86/Printer name mangler. Do not bother usingBrian Gaeke
SlotCalculator in CWriter. (Unfortunately, all this means a lot of X86/Printer's methods have to be de-constified again. Oh well.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7299 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24More testcases, which I'll implement laterChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Modernize testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7297 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7296 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Instcombine: (A >> c1) << c2 for signed integersChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7295 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24New testcases for signed shiftsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7294 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Major addition to bugpoint: ability to debug code generators (LLC and LLI).Misha Brukman
The C backend is assumed correct and is used to generate shared objects to be loaded by the other two code generators. LLC debugging should be functional now, LLI needs a few more additions to work, the major one is renaming of external functions to call the JIT lazy function resolver. Bugpoint now has a command-line switch -mode with options 'compile' and 'codegen' to debug appropriate portions of tools. ExecutionDriver.cpp: Added implementations of AbstractInterpreter for LLC and GCC, broke out common code within other tools, and added ability to generate C code with CBE individually, without executing the program, and the GCC tool can generate executables shared objects or executables. If no reference output is specified to Bugpoint, it will be generated with CBE, because it is already assumed to be correct for the purposes of debugging using this method. As a result, many functions now accept as an optional parameter a shared object to be loaded in, if specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7293 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Reorganization of code, no functional changes.Chris Lattner
Now it shoudl be a bit more efficient git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7292 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24It doesn't appear that we need to #include these.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7291 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Allow folding several instructions into casts, which can simplify a lotChris Lattner
of codes. For example, short kernel (short t1) { t1 >>= 8; t1 <<= 8; return t1; } became: short %kernel(short %t1.1) { %tmp.3 = shr short %t1.1, ubyte 8 ; <short> [#uses=1] %tmp.5 = cast short %tmp.3 to int ; <int> [#uses=1] %tmp.7 = shl int %tmp.5, ubyte 8 ; <int> [#uses=1] %tmp.8 = cast int %tmp.7 to short ; <short> [#uses=1] ret short %tmp.8 } before, now it becomes: short %kernel(short %t1.1) { %tmp.3 = shr short %t1.1, ubyte 8 ; <short> [#uses=1] %tmp.8 = shl short %tmp.3, ubyte 8 ; <short> [#uses=1] ret short %tmp.8 } which will become: short %kernel(short %t1.1) { %tmp.3 = and short %t1.1, 0xFF00 ret short %tmp.3 } This implements cast-set.ll:test4 and test5 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7290 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Minor cleanupsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7289 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24Constify most methods. We could have constified doInitialization andBrian Gaeke
doFinalization too except that would have made them shadow, not override, the parent class :-P. Allow *any* constant cast expression between pointers and longs, or vice-versa, or any widening (not just same-size) conversion that isLosslesslyConvertibleTo approves. This fixes oopack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7288 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Disable sample project until it worksChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7287 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Add new tests, make existing tests more difficultChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7286 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Fix bug: FunctionResolve/2003-07-23-CPR-Reference.llChris Lattner
This fixes a long time annoyance which caused prototypes for bzero, bcopy, bcmp, fputs, and fputs_unlocked to never get deleted. Grr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7285 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7284 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Add commentsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7283 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Remove explicit check for: not (not X) = X, it is already handled because ↵Chris Lattner
xor is commutative - InstCombine: (X & C1) ^ C2 --> (X & C1) | C2 iff (C1&C2) == 0 - InstCombine: (X | C1) ^ C2 --> (X | C1) & ~C2 iff (C1&C2) == C2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7282 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcasesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7281 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Renumber tests sequentiallyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7280 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Split the or and xor tests into two separate filesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7279 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Remove obscure testChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7278 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Check in old testcase sitting in my treeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7277 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Fix program: SingleSource/UnitTests/2003-07-09-SignedArgs with the CBEChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7276 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Printer.cpp: Ditch addRequired/getAnalysis, because they leaveBrian Gaeke
Printer::doFinalization() out in the cold. Now we pass in a TargetMachine to Printer's constructor and get the TargetData from the TargetMachine. Don't pass TargetMachine or MRegisterInfo objects around in the Printer. Constify TargetData references. X86.h: Update comment and prototype of createX86CodePrinterPass(). X86TargetMachine.cpp: Update callers of createX86CodePrinterPass(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7275 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Make Module::getNamedFunction prefer non-external functions if there is more ↵Chris Lattner
than one function of the same name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7274 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Fix spaceChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7273 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23InstCombine: (X ^ C1) & C2 --> (X & C2) iff (C1&C2) == 0Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7272 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7271 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 - InstCombine: (X | C1) & C2 --> X & C2 iff C1 & C1 == 0Chris Lattner
- InstCombine: (X | C) & C --> C - InstCombine: (X | C1) & C2 --> (X | (C1&C2)) & C2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7269 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7267 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7266 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Add, rewrite, and/or reformat many comments.Brian Gaeke
Stop passing ostreams around: we already have one perfectly good ostream and we can all share it. Stop stashing a pointer to TargetData in the Pass object, because that will lead to a crash if there are no functions in the module (ouch!) Instead, use addRequired() and getAnalysis(), like we always should have done. Move the check for ConstantExpr up before the check for isPrimitiveType, because we need to be able to catch e.g. ubyte (cast bool false to ubyte), whose type is primitive but which is nevertheless a ConstantExpr, by calling our specialized handler instead of the AsmWriter. This would result in assembler errors when we would try to output something like ".byte (cast bool false to ubyte)". GC some unused variable declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7265 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23IC: (X & C1) | C2 --> (X | C2) & (C1|C2)Chris Lattner
IC: (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2) We are now guaranteed that all 'or's will be inside of 'and's, and all 'and's will be inside of 'xor's, if the second operands are constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7264 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcasesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7263 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23IC: (X ^ C1) & C2 --> (X & C2) ^ (C1&C2)Chris Lattner
Minor code cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7262 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7261 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23InstCombine: (X ^ 4) == 8 --> X == 12Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7260 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23New testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7259 91177308-0d34-0410-b5e6-96231b3b80d8