aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Reapply 80278Bruno Cardoso Lopes2009-09-014-45/+71
| | | | | | | | | Add MO flags to simplify the printing of relocations. Remove the support for printing large code model relocs (which aren't supported anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80691 91177308-0d34-0410-b5e6-96231b3b80d8
* revert inadvertant change from previous commitJim Grosbach2009-09-011-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80689 91177308-0d34-0410-b5e6-96231b3b80d8
* random code cleanups, no functionality change.Chris Lattner2009-09-011-63/+62
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80682 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake files.Ted Kremenek2009-09-012-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80680 91177308-0d34-0410-b5e6-96231b3b80d8
* Simply LSDA lable emission to use a direct special-case output instead ofJim Grosbach2009-09-013-21/+12
| | | | | | EmitLabel() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80677 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not manipulate invalid iterators. This fixes theDuncan Sands2009-09-011-6/+11
| | | | | | | llvm-gcc build when expensive checking is turned on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80671 91177308-0d34-0410-b5e6-96231b3b80d8
* Further refactoring of PIC16 Obj file code.Sanjiv Gupta2009-09-013-19/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80670 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMakeLists.Benjamin Kramer2009-09-011-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80669 91177308-0d34-0410-b5e6-96231b3b80d8
* Preparation for Optimal Edge Profiling:Andreas Neustifter2009-09-011-1/+9
| | | | | | | | Add statistics for regular edge profiling, this enables the comparation of the number of edges inserted by regular and optimal edge profiling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80668 91177308-0d34-0410-b5e6-96231b3b80d8
* Preparation for Optimal Edge Profiling:Andreas Neustifter2009-09-011-1/+8
| | | | | | | | | | Optimal edge profiling is only possible when blocks with no predecessors get an virtual edge (BB,0) that counts the execution frequencies of this function-exiting blocks. This patch makes the necessary changes before actually enabling optimal edge profiling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80667 91177308-0d34-0410-b5e6-96231b3b80d8
* Preparation for Optimal Edge Profiling:Andreas Neustifter2009-09-011-0/+228
| | | | | | | | | This adds a pass to verify the current profile against the flow conditions. This is very helpful when later on trying to perserve the profiling information during all passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80666 91177308-0d34-0410-b5e6-96231b3b80d8
* Change CallGraphNode to maintain it's Function as an AssertingVHChris Lattner2009-09-014-45/+38
| | | | | | | | | | | | | for sanity. This didn't turn up any bugs. Change CallGraphNode to maintain its "callsite" information in the call edges list as a WeakVH instead of as an instruction*. This fixes a broad class of dangling pointer bugs, and makes CallGraph have a number of useful invariants again. This fixes the class of problem indicated by PR4029 and PR3601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80663 91177308-0d34-0410-b5e6-96231b3b80d8
* Generate code for vld{234}_lane intrinsics.Bob Wilson2009-09-014-0/+130
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80656 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix pr4843: When an instruction has multiple destination registers that areBob Wilson2009-09-011-11/+55
| | | | | | | | | | tied to different source registers, the TwoAddressInstructionPass needs to be smarter. Change it to check before replacing a source register whether that source register is tied to a different destination register, and if so, defer handling it until a subsequent iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80654 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Store MCSymbolData value as a pointer (to make MSVC happy).Daniel Dunbar2009-09-011-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80652 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix compiler warningsJim Grosbach2009-09-012-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80650 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up LSDA name generation and use for SJLJ exception handling. ThisJim Grosbach2009-09-017-34/+56
| | | | | | | | | | | | makes an eggregious hack somewhat more palatable. Bringing the LSDA forward and making it a GV available for reference would be even better, but is beyond the scope of what I'm looking to solve at this point. Objective C++ code could generate function names that broke the previous scheme. This fixes that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80649 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce DILocation.Devang Patel2009-09-011-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80648 91177308-0d34-0410-b5e6-96231b3b80d8
* Subprogram is a scope. Derive DISubprogram from DIScope.Devang Patel2009-08-313-5/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80637 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename DIBlock as DILexicalBlock.Devang Patel2009-08-312-3/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80633 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't use an iterator which is potentially invalidated.Dan Gohman2009-08-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80632 91177308-0d34-0410-b5e6-96231b3b80d8
* Use early exit and reduce indentation.Bob Wilson2009-08-311-157/+157
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80631 91177308-0d34-0410-b5e6-96231b3b80d8
* If the tied registers are already the same, there is no need to changeBob Wilson2009-08-311-5/+5
| | | | | | | them. Move the code to make that change inside the conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80630 91177308-0d34-0410-b5e6-96231b3b80d8
* Add triple parsing support for XCore.Richard Osborne2009-08-311-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80629 91177308-0d34-0410-b5e6-96231b3b80d8
* Derive DICompileUnit from DIScope.Devang Patel2009-08-311-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80627 91177308-0d34-0410-b5e6-96231b3b80d8
* Add flag to mark structs for Apple Block "byref" variables; also add code toCaroline Tice2009-08-312-2/+254
| | | | | | | | modify the type and location debug information for these variables to match the programmer's expectations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80625 91177308-0d34-0410-b5e6-96231b3b80d8
* Extend the ValuesAtScope cache to cover all expressions, not justDan Gohman2009-08-311-20/+24
| | | | | | | | | | | | | | | SCEVUnknowns, as the non-SCEVUnknown cases in the getSCEVAtScope code can also end up repeatedly climing through the same expression trees, which can be unusably slow when the trees are very tall. Also, add a quick check for SCEV pointer equality to the main SCEV comparison routine, as the full comparison code can be expensive in the case of large expression trees. These fix compile-time problems in some pathlogical cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80623 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't mark a register live at an undef use.David Goodwin2009-08-311-13/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80621 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce DIScope.Devang Patel2009-08-311-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80620 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops. Fix inverted logic in assertion check.Devang Patel2009-08-311-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80618 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove .n suffix for some 16-bit opcodes now that Darwin assembler is fixed.Evan Cheng2009-08-311-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80615 91177308-0d34-0410-b5e6-96231b3b80d8
* X86/exp-asm-printer: Lower MachineOperand::MO_JumpTableIndex to MCOperand.Daniel Dunbar2009-08-312-1/+35
| | | | | | - Down to 7 failures on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80605 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop printing old asm printing code inline with -experimental-asm-printer ↵Daniel Dunbar2009-08-311-9/+0
| | | | | | (this allows diffing and assembling the .s) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80604 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid unnecessary +0 in experimental-asm-printer.Daniel Dunbar2009-08-311-7/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80603 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify isDerivedType() and other predicate interface.Devang Patel2009-08-313-28/+65
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80602 91177308-0d34-0410-b5e6-96231b3b80d8
* Output a hex value, because all of the others are hex.Bill Wendling2009-08-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80601 91177308-0d34-0410-b5e6-96231b3b80d8
* cleanups pointed out by duncanChris Lattner2009-08-311-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80595 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert commit 80428. It completely broke exceptionDuncan Sands2009-08-315-123/+17
| | | | | | | handling on x86-32 linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80592 91177308-0d34-0410-b5e6-96231b3b80d8
* Free the constants that have no uses in ~LLVMContext.Edwin Török2009-08-314-4/+31
| | | | | | | | | | | | This fixes leaks from LLVMContext in multithreaded apps. Since constants are only deleted if they have no uses, it is safe to not delete a Module on shutdown, as many single-threaded tools do. Multithreaded apps should however delete the Module before destroying the Context to ensure that there are no leaks (assuming they use a different context for each thread). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80590 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix ExplicitSymbols leak.Edwin Török2009-08-311-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80589 91177308-0d34-0410-b5e6-96231b3b80d8
* Normalize makefile comments and sort cmake file lists.Benjamin Kramer2009-08-3122-24/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80584 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Pass values to MCStreamer as MCExprs, not MCValues.Daniel Dunbar2009-08-313-34/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80578 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Simplify EmitAssignment ('.set' is identical to '=').Daniel Dunbar2009-08-313-25/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80577 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Switch MCInst to storing an MCExpr* instead of an MCValue.Daniel Dunbar2009-08-317-64/+94
| | | | | | Also, use MCInst::print instead of custom code in MCAsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80575 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Make MCSymbolData symbol member const.Daniel Dunbar2009-08-312-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80573 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Add MCContext to MCAssembler.Daniel Dunbar2009-08-312-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80572 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Add MCExpr::{dump,print}.Daniel Dunbar2009-08-311-0/+67
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80570 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Switch MCExpr construction to using static member functions, and ↵Daniel Dunbar2009-08-311-8/+28
| | | | | | taking the MCContext (which now owns all MCExprs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80569 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-mc: Move AsmExpr into MC lib (as MCExpr).Daniel Dunbar2009-08-312-0/+163
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80567 91177308-0d34-0410-b5e6-96231b3b80d8
* Step #1 to giving Callgraph some sane invariants. The problems with callgraphChris Lattner2009-08-312-27/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stem from the fact that we have two types of passes that need to update it: 1. callgraphscc and module passes that are explicitly aware of it 2. Functionpasses (and loop passes etc) that are interlaced with CGSCC passes by the CGSCC Passmgr. In the case of #1, we can reasonably expect the passes to update the call graph just like any analysis. However, functionpasses are not and generally should not be CG aware. This has caused us no end of problems, so this takes a new approach. Logically, the CGSCC Pass manager can rescan every function after it runs a function pass over it to see if the functionpass made any updates to the IR that affect the callgraph. This allows it to catch new calls introduced by the functionpass. In practice, doing this would be slow. This implementation keeps track of whether or not the current scc is dirtied by a function pass, and, if so, delays updating the callgraph until it is actually needed again. This was we avoid extraneous rescans, but we still have good invariants when the callgraph is needed. Step #2 of the "give Callgraph some sane invariants" is to change CallGraphNode to use a CallBackVH for the callsite entry of the CallGraphNode. This way we can immediately remove entries from the callgraph when a FunctionPass is active instead of having dangling pointers. The current pass tries to tolerate these dangling pointers, but it is just an evil hack. This is related to PR3601/4835/4029. This also reverts r80541, a hack working around the sad lack of invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80566 91177308-0d34-0410-b5e6-96231b3b80d8