aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2007-02-08Move SimplifySetCC to TargetLowering and allow it to be shared with legalizer.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34065 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Rename CStringMap -> StringMap, since it now supports nul characters in theChris Lattner
strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34064 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Allow cstringmap to contain strings with nul characters in them.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34062 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08return addresses, those I already haveAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34056 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Switched this file on accidently.Zhou Sheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34054 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08As Chris and Reid suggested, remove "isSigned" field from APInt, instead,Zhou Sheng
add some signed/unsigned arithmetic operation functions into APInt.h to handle the signed/unsigned issue. These functions will be defined inside a namespace "APIntOps" which is inside llvm namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34053 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Fixed comments.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34040 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Fixed a long standing spiller bug that's exposed by Thumb:Evan Cheng
The code sequence before the spiller is something like: = tMOVrr %reg1117 = tMOVrr %reg1078 = tLSLri %reg1117, 2 The it starts spilling: %r0 = tRestore <fi#5>, 0 %r1 = tRestore <fi#7>, 0 %r1 = tMOVrr %r1<kill> tSpill %r1, <fi#5>, 0 %reg1078 = tLSLri %reg1117, 2 It restores the value while processing the first tMOVrr. At this point, the spiller remembers fi#5 is available in %r0. Next it processes the second move. It restores the source before the move and spills the result afterwards. The move becomes a noop and is deleted. However, a spill has been inserted and that should invalidate reuse of %r0 for fi#5 and add reuse of %r1 for fi#5. Therefore, %reg1117 (which is also assigned fi#5) should get %r1, not %r0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34039 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Moved the MachOWriter and ELFWriter out of the Target/* files. Placed theBill Wendling
definition of it into the CodeGen library. This is so that a backend doesn't necessarily add in these writers if it doesn't use them (like in the lli program). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34034 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Added new method to add a "simple" code emitter. That is, to only addBill Wendling
the code emitter and not set variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34033 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Split the addPassesToEmitFile method up into two. This is so that we canBill Wendling
do some common stuff, then on our own add an object file writer (by calling a concrete function), and then do some finishing stuff, if need be. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34032 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Add function to create a file writer.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34031 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Dead files. Functionality has been taken over by the Add*Writer functions.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34029 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08Moved from include/llvm/CodeGen to lib/CodeGen.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08For PR1188:Reid Spencer
Compute BitMask correctly. Patch by Leo (wenwenti@hotmail.com). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34026 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07move archive-specific stuff out of bcreader into archive library.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34022 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07move an llvmc-specific function out of the bcreader into llvmc.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34021 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07move AnalyzeBytecodeFile out of ReaderWrappers.cpp into Analyzer.cpp. NowChris Lattner
lli doesn't link in Analyzer.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34020 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07isLowRegister() expects input is a physical register.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34013 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07push bytecode decompressor out through APIs. Now the bytecode readerChris Lattner
api's look like this: ModuleProvider *getBytecodeModuleProvider( const std::string &Filename, ///< Name of file to be read BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer, std::string* ErrMsg = 0, ///< Optional error message holder BytecodeHandler* H = 0 ///< Optional handler for reader events ); This is ugly, but allows a client to say: getBytecodeModuleProvider("foo", 0); If they do this, there is no dependency on the compression libraries, saving codesize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34012 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Rename.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34011 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07If sp offset will be materialized in a register. Clear the offset field of ↵Evan Cheng
str / ldr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34010 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Get rid of references to iostream.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34009 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Automatically generating intrinsic declarations from Dan Gohman. ModifiedJim Laskey
to construct FunctionType in separate function, and, have getDeclaration return a Function instead of a Constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34008 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Move compressor out of the core Reader.cpp file.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34007 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Do not drop transferred last uses on the floor.Devang Patel
Use handleLastUserOverflow(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34006 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Fix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.Chris Lattner
This happened because deadargelim now causes VMCore to auto-rename every function that it hacks arguments out of. Because it hacks arguments out of functions in a non-deterministic order, this caused the resultant numbering to be nondet. The fix is to just be careful to not rename functions! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34005 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07New entry.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34000 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07In thumb mode, R3 is reserved, but it can be live in to the function. IfEvan Cheng
that is the case, whenever we use it as a scratch register, save it to R12 first and then restore it after the use. This is a temporary and truly horrible workaround! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33999 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07UpdateEvan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33998 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07- If fp (r7) is used to reference stack objects, use [r, r] address mode.Evan Cheng
- If there is a dynamic alloca, in the epilogue, restore the value of sp using r7 - offset. - Other bug fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33997 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07remove dead ivars, thanks to Reid for noticing this!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33995 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07remove the handleVBR32/handleVBR64 callbacks. They are very fine-grained.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33994 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07constants can't be in the symtab anymoreChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33993 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07update comment.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33992 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07shrink vmcore by moving symbol table stripping support out of VMCore intoChris Lattner
the one IPO pass that uses it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33990 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07As Chris suggested, fixed some problems. (This is the first part)Zhou Sheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33989 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07eliminate ValueSymbolTable::rename, it has no advantage over using ↵Chris Lattner
remove+insert. Make insert/remove assert if used incorrectly instead of returning a bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33988 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07speed up conflict handling.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33985 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Fix a fixme by correctly calculating preferred alignments for functions,Nate Begeman
based on the alignment of the symbol and the target data's preferred align for that type. Also, rename some arguments for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33984 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Eliminate the O(n) version of TypeSymbolTable::remove, it is dead. WhenChris Lattner
inserting a type into the type symbol table, only compute unique name if not in symtab already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33983 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07TypeSymbolTable::rename is dead, remove itChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33982 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Eliminate a bunch of work from ValueSymbolTable::insert for the common caseChris Lattner
where a symbol name doesn't conflict. This speeds up bc reading 16% on 176.gcc! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33981 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07parse constantexpr arguments into a smallvector: 1.5% speedup reading 176.gccChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33980 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Eliminate std::vectors from the bcanalyzer interface.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33978 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07eliminateFrameIndex() is even more complicated if frame ptr is used instead ↵Evan Cheng
of SP when there are dynamic alloca's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33975 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07redesign the primary datastructure used by mem2reg to eliminate anChris Lattner
std::map of std::vector's (ouch!). This speeds up mem2reg by 10% on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33974 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07do not let the table fill up with tombstones.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33973 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07Spill / restore should avoid modifying the condition register.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33971 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06Two fixes:Chris Lattner
1. Memset takes an i32 for the value to set, not i8. This was causing GCC to ICE all over the place (PR1183). 2. memcpy/memmove were not properly zext/trunc'ing the size in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33970 91177308-0d34-0410-b5e6-96231b3b80d8