summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* Regen.Eric Christopher2013-04-271-3/+3
| | | | llvm-svn: 180685
* Only use cxxabi.h's demangler, if it is actually available.Joerg Sonnenberger2013-04-272-0/+6
| | | | llvm-svn: 180684
* Generalize the MachineTraceMetrics public API.Andrew Trick2013-04-271-2/+6
| | | | | | | Naturally, we should be able to pass in extra instructions, not just extra blocks. llvm-svn: 180667
* Add target flags to MachineMemOperands.Andrew Trick2013-04-271-1/+7
| | | | | | | | | | | | | | | | | | This seems to me an obvious place to allow target passes to annotate memory operations. There are plenty of bits, and I'm not aware of another good way for early target passes to propagate hints along to later passes. Target independent transforms can simply preserve them, the way they preserve the other flags. Like MachineMemOperands in general, if the target flags are lost we must still generate correct code. This has lots of uses, but I want this flexibility now to make it easier to work with the new MachineTraceMetrics analysis. MachineTraceMetrics can gather a lot of information about instructions based on the surrounding code. This information can be used to influence postRA machine passes that don't work on SSA form. llvm-svn: 180666
* whitespaceAndrew Trick2013-04-271-11/+11
| | | | llvm-svn: 180665
* Use the target triple from the target machine rather than the moduleEric Christopher2013-04-271-0/+3
| | | | | | | | | | | | | | | | to determine whether or not we're on a darwin platform for debug code emitting. Solves the problem of a module with no triple on the command line and no triple in the module using non-gdb ok features on darwin. Fix up the member-pointers test to check the correct things for cross platform (DW_FORM_flag is a good prefix). Unfortunately no testcase because I have no ideas how to test something without a triple and without a triple in the module yet check precisely on two platforms. Ideas welcome. llvm-svn: 180660
* Struct-path aware TBAA: change the format of TBAAStructType node.Manman Ren2013-04-271-7/+7
| | | | | | | | We switch the order of offset and field type to make TBAAStructType node (name, parent node, offset) similar to scalar TBAA node (name, parent node). TypeIsImmutable is added to TBAAStructTag node. llvm-svn: 180654
* Cleanup and document MachineLocation.Adrian Prantl2013-04-261-1/+6
| | | | | | | | | | | | Clarify documentation and API to make the difference between register and register-indirect addressed locations more explicit. Put in a comment to point out that with the current implementation we cannot specify a register-indirect location with offset 0 (a breg 0 in DWARF). No functionality change intended. rdar://problem/13658587 llvm-svn: 180641
* Use llvm/Object/MachO.h in macho-dumper. Drop the old macho parser.Rafael Espindola2013-04-263-289/+22
| | | | | | | | | | | | | | | | | | | | | For Mach-O there were 2 implementations for parsing object files. A standalone llvm/Object/MachOObject.h and llvm/Object/MachO.h which implements the generic interface in llvm/Object/ObjectFile.h. This patch adds the missing features to MachO.h, moves macho-dump to use MachO.h and removes ObjectFile.h. In addition to making sure that check-all is clean, I checked that the new version produces exactly the same output in all Mach-O files in a llvm+clang build directory (including executables and shared libraries). To test the performance, I ran macho-dump over all the files in a llvm+clang build directory again, but this time redirecting the output to /dev/null. Both the old and new versions take about 4.6 seconds (2.5 user) to finish. llvm-svn: 180624
* fix a typo that due to cu&paste quadrupled itselfAdrian Prantl2013-04-261-2/+2
| | | | | | rdar://problem/13056109 llvm-svn: 180618
* Bugfix for the debug intrinsic handling in InstCombiner:Adrian Prantl2013-04-261-2/+2
| | | | | | | | | | | Since we can't guarantee that the original dbg.declare instrinsic is removed by LowerDbgDeclare(), we need to make sure that we are not inserting the same dbg.value intrinsic over and over. This removes tons of redundant DIEs when compiling optimized code. rdar://problem/13056109 llvm-svn: 180615
* Re-enabling MCJIT object caching with memory leak fixedAndrew Kaylor2013-04-252-0/+61
| | | | llvm-svn: 180575
* revert r179735, it has no testcases, and doesn't really make sense.Chris Lattner2013-04-251-2/+1
| | | | llvm-svn: 180574
* [mc-coff] Forward Linker Option flags into the .drectve sectionReid Kleckner2013-04-251-0/+6
| | | | | | | | | | | | | | Summary: This is modelled on the Mach-O linker options implementation and should support a Clang implementation of #pragma comment(lib/linker). Reviewers: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D724 llvm-svn: 180569
* Clarify getRelocationAddress x getRelocationOffset a bit.Rafael Espindola2013-04-252-32/+21
| | | | | | | | | | getRelocationAddress is for dynamic libraries and executables, getRelocationOffset for relocatable objects. Mark the getRelocationAddress of COFF and MachO as not implemented yet. Add a test of ELF's. llvm-readobj -r now prints the same values as readelf -r. llvm-svn: 180259
* Revert "Adding object caching support to MCJIT"Rafael Espindola2013-04-252-61/+0
| | | | | | | | | | This reverts commit 07f03923137a91e3cca5d7fc075a22f8c9baf33a. Looks like it broke the valgrind bot: http://lab.llvm.org:8011/builders/llvm-x86_64-linux-vg_leak/builds/649 llvm-svn: 180249
* Revert "Exposing MCJIT through C API"Rafael Espindola2013-04-251-28/+0
| | | | | | | | | | This reverts commit 8c31b298149ca3c3f2bbd9e8aa9a01c4d91f3d74. It looks like this commit broke some bots: http://lab.llvm.org:8011/builders/llvm-ppc64-linux2/builds/5209 llvm-svn: 180248
* Exposing MCJIT through C APIAndrew Kaylor2013-04-241-0/+28
| | | | | | Patch by Filip Pizlo llvm-svn: 180229
* Making invalidateInstructionCache automatic in SectionMemoryManagerAndrew Kaylor2013-04-241-3/+1
| | | | llvm-svn: 180225
* MI Sched: eliminate local vreg copies.Andrew Trick2013-04-244-3/+18
| | | | | | | | | | | | | | | | For now, we just reschedule instructions that use the copied vregs and let regalloc elliminate it. I would really like to eliminate the copies on-the-fly during scheduling, but we need a complete implementation of repairIntervalsInRange() first. The general strategy is for the register coalescer to eliminate as many global copies as possible and shrink live ranges to be extended-basic-block local. The coalescer should not have to worry about resolving local copies (e.g. it shouldn't attemp to reorder instructions). The scheduler is a much better place to deal with local interference. The coalescer side of this equation needs work. llvm-svn: 180193
* Add include guards.Eric Christopher2013-04-241-0/+5
| | | | llvm-svn: 180188
* Comment a strange field in ScheduleDAG.Andrew Trick2013-04-231-0/+4
| | | | llvm-svn: 180159
* Fix dependency layering issues caused by r180112.Eric Christopher2013-04-232-2/+4
| | | | | | Patch by Tom Stellard. (Committed while he's afk per request) llvm-svn: 180157
* Fixing typo in comment.Andrew Kaylor2013-04-231-1/+1
| | | | llvm-svn: 180147
* Adding object caching support to MCJITAndrew Kaylor2013-04-232-0/+61
| | | | llvm-svn: 180146
* Wrap.h: Define wrap / unwrap function for ExecutionEngineTom Stellard2013-04-231-0/+2
| | | | llvm-svn: 180112
* c vs c++ mistake in header file typedef for AtomicRMW fix in rev 180100.Carlo Kok2013-04-231-4/+4
| | | | llvm-svn: 180104
* Expose IRBuilder::CreateAtomicRMW as LLVMBuildAtomicRMW in llvm-c.Carlo Kok2013-04-231-0/+53
| | | | llvm-svn: 180100
* Add more guards around zlib-dependent codeAlexey Samsonov2013-04-231-0/+3
| | | | llvm-svn: 180084
* Add basic zlib support to LLVM. This would allow to use ↵Alexey Samsonov2013-04-233-0/+73
| | | | | | compression/uncompression in selected LLVM tools. llvm-svn: 180083
* Remove unused DwarfSectionOffsetDirective stringMatt Arsenault2013-04-221-6/+6
| | | | | | | The value isn't actually used, and setting it emits a COFF specific directive. llvm-svn: 180064
* Move C++ code out of the C headers and into either C++ headersEric Christopher2013-04-228-228/+121
| | | | | | | or the C++ files themselves. This enables people to use just a C compiler to interoperate with LLVM. llvm-svn: 180063
* [ms-inline asm] Add the OpDecl to the InlineAsmIdentifierInfo struct and in turnChad Rosier2013-04-222-0/+3
| | | | | | | the MCParsedAsmOperand. Part of rdar://13663589 llvm-svn: 180054
* Optimize MachineBasicBlock::getSymbol by caching the symbol. Since the symbolEli Bendersky2013-04-221-1/+4
| | | | | | | name computation is expensive, this helps save about 25% of the time spent in this function. llvm-svn: 180049
* Fix comment that didn't match the method it was aboveEli Bendersky2013-04-221-2/+2
| | | | llvm-svn: 180043
* [ms-inline asm] Remove the identifier parsing logic from the AsmParser. This isChad Rosier2013-04-221-0/+2
| | | | | | | | now taken care of by the frontend, which allows us to parse arbitrary C/C++ variables. Part of rdar://13663589 llvm-svn: 180037
* [ms-inline asm] Refactor/clean up the SemaLookup interface. No functionalChad Rosier2013-04-221-3/+14
| | | | | | | change indended. Part of rdar://13663589 llvm-svn: 180028
* typoJia Liu2013-04-221-1/+1
| | | | llvm-svn: 180023
* Make doxygen comment match declaration.Benjamin Kramer2013-04-221-1/+1
| | | | | | Found by -Wdocumentation. llvm-svn: 180021
* Clarify that llvm.used can contain aliases.Rafael Espindola2013-04-221-1/+2
| | | | | | | Also add a check for llvm.used in the verifier and simplify clients now that they can assume they have a ConstantArray. llvm-svn: 180019
* Add the same todo about a command iterator interface into theEric Christopher2013-04-221-0/+3
| | | | | | | other mach-o object file as well. TODO: One interface to rule them all. llvm-svn: 180009
* Add a TODO about wanting an iterator interface.Eric Christopher2013-04-221-0/+2
| | | | llvm-svn: 180008
* Revert "Revert "PR14606: debug info imported_module support""David Blaikie2013-04-222-1/+26
| | | | | | | | | | This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even though the debug info was clearly invalid on all of them, but this ought to fix it. llvm-svn: 179996
* Remove unused, undefined ArgFlagsTy::getArgFlagsString; add a comment about ↵Stephen Lin2013-04-211-5/+2
| | | | | | 'returned' llvm-svn: 179983
* Remove unused ShouldFoldAtomicFences flag.Tim Northover2013-04-201-18/+0
| | | | | | | | I think it's almost impossible to fold atomic fences profitably under LLVM/C++11 semantics. As a result, this is now unused and just cluttering up the target interface. llvm-svn: 179940
* Remove unused MEMBARRIER DAG node; it's been replaced by ATOMIC_FENCE.Tim Northover2013-04-202-11/+0
| | | | llvm-svn: 179939
* Add CodeGen support for functions that always return arguments via a new ↵Stephen Lin2013-04-204-23/+35
| | | | | | parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). llvm-svn: 179925
* Simplify the code in FastISel::tryToFoldLoad, add an assertion and fix a ↵Eli Bendersky2013-04-191-1/+1
| | | | | | comment. llvm-svn: 179908
* Move TryToFoldFastISelLoad to FastISel, where it belongs. In general, I'mEli Bendersky2013-04-192-6/+19
| | | | | | | trying to move as much FastISel logic as possible out of the main path in SelectionDAGISel - intermixing them just adds confusion. llvm-svn: 179902
* ArrayRefize getMachineNode(). No functionality change.Michael Liao2013-04-191-15/+16
| | | | llvm-svn: 179901
OpenPOWER on IntegriCloud