summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Add some switches helpful for debugging:David Greene2010-04-013-34/+66
| | | | | | | | | | | | | | | | | | | | | | | -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100143
* Do not eagerly record known previous location. DBG_VALUE may not cause a new ↵Devang Patel2010-04-011-1/+2
| | | | | | label due to one or other reason. llvm-svn: 100134
* Skip checking preferred alignment of GVs defined in other translation units ↵Evan Cheng2010-04-011-1/+1
| | | | | | all together. llvm-svn: 100133
* - Avoid using floating point stores to implement memset unless the value is ↵Evan Cheng2010-04-011-10/+14
| | | | | | | | zero. - Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. llvm-svn: 100118
* Skip instructions until new scope is seen.Devang Patel2010-04-011-6/+18
| | | | llvm-svn: 100117
* Cosmetic changes.Devang Patel2010-04-011-5/+5
| | | | | | Update comment, rename a local variable. llvm-svn: 100116
* Fix sdisel memcpy, memset, memmove lowering:Evan Cheng2010-04-012-108/+156
| | | | | | | | | | | | | 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 llvm-svn: 100090
* Reapply r100056. It doesn't look like it's the one that's causing a failure.Bill Wendling2010-04-011-35/+23
| | | | llvm-svn: 100065
* Revert r100056. It was causing a failure on MSVC.Bill Wendling2010-03-311-23/+35
| | | | llvm-svn: 100062
* Reverting 100048; it broke two Frontend debug info tests.Stuart Hastings2010-03-312-26/+10
| | | | llvm-svn: 100058
* Rewrite CorrectExtraCFGEdges() to make it more understandable.Bill Wendling2010-03-311-35/+23
| | | | | | | | | | * Set the "DestA" and "DestB" according to how they're understood by the method. I.e., if one or both of them should point to the "fall through" block, then point to the fall through block. * Improve the loop that removes superfluous edges to be more understandable. llvm-svn: 100056
* Debug info can now properly represent functions inside classes inside other ↵Stuart Hastings2010-03-312-10/+26
| | | | | | functions. Partial fix for Radar 7424645. llvm-svn: 100048
* Reduce string trashing.Benjamin Kramer2010-03-311-2/+2
| | | | llvm-svn: 100038
* DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them areBenjamin Kramer2010-03-314-32/+30
| | | | | | | | | POD-like anyway, so we don't even care about calling their d'tors (DIEBlock being the exception). ~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c llvm-svn: 100035
* reduce indentationChris Lattner2010-03-311-20/+21
| | | | llvm-svn: 99999
* tidy upChris Lattner2010-03-311-7/+8
| | | | llvm-svn: 99998
* MI != 0 is checked in the assert right above this.Chris Lattner2010-03-311-1/+1
| | | | llvm-svn: 99995
* use the isDebugValue() predicate and pop_back_val()Chris Lattner2010-03-311-7/+7
| | | | llvm-svn: 99993
* assert is a function-like macro, not a control flow operator.Chris Lattner2010-03-311-14/+14
| | | | llvm-svn: 99992
* reduce indentation, fit in 80 cols and various other cosmetic cleanups.Chris Lattner2010-03-311-284/+300
| | | | llvm-svn: 99989
* use the optimized debug info apis in sdisel.Chris Lattner2010-03-311-19/+16
| | | | llvm-svn: 99986
* add new apis for getting/setting !dbg metadata on Chris Lattner2010-03-313-7/+7
| | | | | | | | | instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. llvm-svn: 99982
* Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.Bob Wilson2010-03-302-54/+27
| | | | llvm-svn: 99948
* Ignore invalid metadata.Devang Patel2010-03-301-0/+2
| | | | llvm-svn: 99938
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-302-27/+54
| | | | | | | | | memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
* Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allowsBenjamin Kramer2010-03-304-11/+6
| | | | | | | only a single type of object to be allocated. Use it to make VNInfo destruction typesafe. llvm-svn: 99919
* Rip out the 'is temporary' nonsense from the MCContext interface toChris Lattner2010-03-305-17/+13
| | | | | | | | | create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. llvm-svn: 99902
* Funky indentation.Evan Cheng2010-03-301-5/+5
| | | | llvm-svn: 99901
* There is no need to fall through after processing DBG_VALUE machine instruction.Devang Patel2010-03-301-0/+1
| | | | llvm-svn: 99899
* Fix -Asserts warning.Daniel Dunbar2010-03-301-4/+0
| | | | llvm-svn: 99895
* Reapply r99881 with some fixes: only call destructor in releaseMemory!Torok Edwin2010-03-302-6/+6
| | | | llvm-svn: 99883
* Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9.Torok Edwin2010-03-301-6/+1
| | | | llvm-svn: 99882
* Introduce another Reset() method in BumpPtrAllocator that calls a destructorTorok Edwin2010-03-301-1/+6
| | | | | | | | | | on all objects it has allocated, if they are all of the same size and alignment. Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653). valnos is not reliable for this purpose, as seen in r99400 (which still leaked, and sometimes caused double frees). llvm-svn: 99881
* Avoid being influenced by the presence of dbg_value instructions.Evan Cheng2010-03-302-8/+28
| | | | llvm-svn: 99879
* Re-add back in the slow way of determining of a clean-up should become aBill Wendling2010-03-291-0/+135
| | | | | | | catch-all. The "dominates" way won't catch all of the selectors which must be changed. llvm-svn: 99850
* A more general (and simpler!) implementation of r99671. It performs a similarBill Wendling2010-03-291-122/+59
| | | | | | | | | | | transform. I.e., if a clean-up eh.selector call dominates the invoke of an _Unwind_Resume_or_Rethrow, then we convert the eh.selector into a catch-all. This patch, however, uses the DominatorTree information, and doesn't go through the whole rigmarole of starting at the eh.exception call, finding the corresponding URoR and eh.selector calls, and trying to trace through any number of instruction types to get to them. llvm-svn: 99846
* Encode start location of debug value, communicated through DBG_VALUE machine ↵Devang Patel2010-03-292-15/+43
| | | | | | instruction, in a variable's DIE. llvm-svn: 99845
* Fix PR4975. Avoid referencing empty vector.Evan Cheng2010-03-291-2/+4
| | | | llvm-svn: 99840
* Pool allocate SDDbgValue nodes.Evan Cheng2010-03-292-11/+29
| | | | llvm-svn: 99836
* use RAII for ExceptionTimer tooChris Lattner2010-03-291-17/+3
| | | | llvm-svn: 99833
* fix a variety of issues were we'd start DebugTimer but Chris Lattner2010-03-291-40/+11
| | | | | | not stop it by using RAII. llvm-svn: 99832
* Refactor code to push DILocation prcessing into DwarfDebug.cpp from ↵Devang Patel2010-03-294-37/+54
| | | | | | | | AsmPrinter.cpp. This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. llvm-svn: 99816
* Revert 99772.Devang Patel2010-03-284-45/+37
| | | | llvm-svn: 99778
* add a statistic for the # times isel has to backtrack.Chris Lattner2010-03-281-1/+3
| | | | llvm-svn: 99774
* Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter.Devang Patel2010-03-284-37/+45
| | | | llvm-svn: 99772
* finally remove the immAllOnesV_bc/immAllZerosV_bc patternsChris Lattner2010-03-281-1/+1
| | | | | | | | | | and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) llvm-svn: 99759
* comply with the wishes of a fixme.Chris Lattner2010-03-281-3/+0
| | | | llvm-svn: 99742
* now that (parallel) is gone and a variety of bugs in targetsChris Lattner2010-03-281-8/+4
| | | | | | are cleaned up, we can remove an old fixme. llvm-svn: 99741
* add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and Chris Lattner2010-03-281-0/+29
| | | | | | | 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. llvm-svn: 99740
* don't add nodes to the now-dead nodes list multiple times, thisChris Lattner2010-03-281-2/+3
| | | | | | | can cause a crash on crazy situations in msp430 when morph-node-to is disabled. llvm-svn: 99739
OpenPOWER on IntegriCloud