summaryrefslogtreecommitdiffstats
path: root/llvm/tools
Commit message (Collapse)AuthorAgeFilesLines
* RegAlloc superpass: includes phi elimination, coalescing, and scheduling.Andrew Trick2012-02-101-6/+1
| | | | | | | | | | | | | | | | Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. llvm-svn: 150226
* Allow bugpoint to recognize -bb-vectorizeHal Finkel2012-02-071-0/+1
| | | | llvm-svn: 150003
* Enable streaming of bitcodeDerek Schuff2012-02-066-15/+22
| | | | | | | This CL delays reading of function bodies from initial parse until materialization, allowing overlap of compilation with bitcode download. llvm-svn: 149918
* [unwind removal] Remove a the obsolete 'unwind' enum value.Bill Wendling2012-02-061-1/+0
| | | | llvm-svn: 149911
* reapply the patches reverted in r149470 that reenable ConstantDataArray,Chris Lattner2012-02-052-3/+4
| | | | | | | | | but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. llvm-svn: 149800
* Allow command-line overrides of the target triple with the Mach-OCameron Zwarich2012-02-031-19/+20
| | | | | | disassembler, just like the generic disassembler. llvm-svn: 149681
* Do the same fix as r149667, but for the Mach-O disassembler.Cameron Zwarich2012-02-031-0/+4
| | | | llvm-svn: 149674
* Fix llvm-objdump disassembly for interesting Mach-O binaries, e.g. any MacOSCameron Zwarich2012-02-031-0/+2
| | | | | | | dylib. This regressed with r145408. I will try to make a test case and add it so that this doesn't happen again. llvm-svn: 149667
* SwitchInst refactoring.Stepan Dyatkovskiy2012-02-011-4/+4
| | | | | | | | | | | | | | | | | The purpose of refactoring is to hide operand roles from SwitchInst user (programmer). If you want to play with operands directly, probably you will need lower level methods than SwitchInst ones (TerminatorInst or may be User). After this patch we can reorganize SwitchInst operands and successors as we want. What was done: 1. Changed semantics of index inside the getCaseValue method: getCaseValue(0) means "get first case", not a condition. Use getCondition() if you want to resolve the condition. I propose don't mix SwitchInst case indexing with low level indexing (TI successors indexing, User's operands indexing), since it may be dangerous. 2. By the same reason findCaseValue(ConstantInt*) returns actual number of case value. 0 means first case, not default. If there is no case with given value, ErrorIndex will returned. 3. Added getCaseSuccessor method. I propose to avoid usage of TerminatorInst::getSuccessor if you want to resolve case successor BB. Use getCaseSuccessor instead, since internal SwitchInst organization of operands/successors is hidden and may be changed in any moment. 4. Added resolveSuccessorIndex and resolveCaseIndex. The main purpose of these methods is to see how case successors are really mapped in TerminatorInst. 4.1 "resolveSuccessorIndex" was created if you need to level down from SwitchInst to TerminatorInst. It returns TerminatorInst's successor index for given case successor. 4.2 "resolveCaseIndex" converts low level successors index to case index that curresponds to the given successor. Note: There are also related compatability fix patches for dragonegg, klee, llvm-gcc-4.0, llvm-gcc-4.2, safecode, clang. llvm-svn: 149481
* Revert Chris' commits up to r149348 that started causing VMCoreTests unit ↵Argyrios Kyrtzidis2012-02-012-4/+3
| | | | | | | | | | | | | | | | | | | test to fail. These are: r149348 r149351 r149352 r149354 r149356 r149357 r149361 r149362 r149364 r149365 llvm-svn: 149470
* Add a basic-block autovectorization pass.Hal Finkel2012-02-019-8/+9
| | | | | | | This is the initial checkin of the basic-block autovectorization pass along with some supporting vectorization infrastructure. Special thanks to everyone who helped review this code over the last several months (especially Tobias Grosser). llvm-svn: 149468
* eliminate the "string" form of ConstantArray::get, usingChris Lattner2012-01-311-1/+2
| | | | | | ConstantDataArray::getString instead. llvm-svn: 149365
* update this to ConstantDataArray. There are no tests and this isn't using ↵Chris Lattner2012-01-311-2/+2
| | | | | | the preferred functionality for ripping apart strings, so I have no way to test this. llvm-svn: 149361
* Add bitcode reader and writer support for ConstantDataAggregate, whichChris Lattner2012-01-301-0/+2
| | | | | | should be feature complete now. Lets see if it works. llvm-svn: 149215
* Better diagnostic for malformed .org assembly directive.Jim Grosbach2012-01-271-2/+2
| | | | | | Provide source line number information. llvm-svn: 149101
* llvm-mc pass through SourceMgr to MCContext.Jim Grosbach2012-01-261-1/+1
| | | | llvm-svn: 149091
* llvm-config: Add support for CMake build trees in which the buildPeter Collingbourne2012-01-261-7/+19
| | | | | | mode does not form part of the path. llvm-svn: 149010
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-4/+3
| | | | llvm-svn: 148578
* Add a TargetOption for disabling tail calls.Nick Lewycky2012-01-191-0/+6
| | | | llvm-svn: 148442
* Remove unreachable code. (replace with llvm_unreachable to help GCC where ↵David Blaikie2012-01-172-4/+0
| | | | | | necessary) llvm-svn: 148284
* MCJIT support for non-function sections.Jim Grosbach2012-01-161-0/+18
| | | | | | | | | | | | | | | | Move to a by-section allocation and relocation scheme. This allows better support for sections which do not contain externally visible symbols. Flesh out the relocation address vs. local storage address separation a bit more as well. Remote process JITs use this to tell the relocation resolution code where the code will live when it executes. The startFunctionBody/endFunctionBody interfaces to the JIT and the memory manager are deprecated. They'll stick around for as long as the old JIT does, but the MCJIT doesn't use them anymore. llvm-svn: 148258
* Adding a basic ELF dynamic loader and MC-JIT for ELF. Functionality is ↵Eli Bendersky2012-01-161-12/+14
| | | | | | | | currently basic and will be enhanced with future patches. Patch developed by Andy Kaylor and Daniel Malea. Reviewed on llvm-commits. llvm-svn: 148231
* 80 columns.Jim Grosbach2012-01-111-1/+2
| | | | llvm-svn: 147970
* lli should only create memmgr when JITing.Jim Grosbach2012-01-111-3/+1
| | | | llvm-svn: 147969
* lli should create a JIT memory manager.Jim Grosbach2012-01-111-0/+4
| | | | | | | Previously let the JITEmitter do it. That's rather odd, and doesn't play nice with the MCJIT, so move the (trivial) logic up. llvm-svn: 147967
* Remove unnecessary default cases in switches that cover all enum values.David Blaikie2012-01-106-9/+0
| | | | llvm-svn: 147855
* Remove the logging streamer.Rafael Espindola2012-01-101-7/+0
| | | | llvm-svn: 147820
* Split Finish into Finish and FinishImpl to have a common place to do end ofRafael Espindola2012-01-071-1/+1
| | | | | | | | file error checking. Use that to error on an unfinished cfi_startproc. The error is not nice, but is already better than a segmentation fault. llvm-svn: 147717
* Remove extraneous ".get()->" which is just "->". No functionality change.Nick Lewycky2011-12-301-5/+5
| | | | llvm-svn: 147379
* Add braces to remove silly warning.Bill Wendling2011-12-251-1/+2
| | | | llvm-svn: 147264
* Remove unused variables.Rafael Espindola2011-12-251-1/+1
| | | | llvm-svn: 147261
* drop unneeded config.h includesDylan Noblesmith2011-12-223-3/+1
| | | | llvm-svn: 147197
* Unweaken vtables as per ↵David Blaikie2011-12-209-3/+15
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* llvm-config: Fix --targets-built, I changed this to use the registry but wasn'tDaniel Dunbar2011-12-164-9/+5
| | | | | | | | properly initializing the target infos. I decided it wasn't worth linking them in for this, so just switched back to using the Makefile variable for now. We can reconsider later if we ever get pluggable targets. llvm-svn: 146711
* llvm-config: Update help text for removal of "backend" pseudo component.Daniel Dunbar2011-12-151-1/+0
| | | | llvm-svn: 146708
* llvm-nm: refactor in order to support reading files from stdin.Michael J. Spencer2011-12-131-31/+40
| | | | llvm-svn: 146524
* LLVMBuild: Introduce a common section which currently has a list of theDaniel Dunbar2011-12-121-0/+3
| | | | | | | | | | | subdirectories to traverse into. - Originally I wanted to avoid this and just autoscan, but this has one key flaw in that new subdirectories can not automatically trigger a rerun of the llvm-build tool. This is particularly a pain when switching back and forth between trees where one has added a subdirectory, as the dependencies will tend to be wrong. This will also eliminates FIXME implicitly. llvm-svn: 146436
* LLVMBuild: Remove trailing newline, which irked me.Daniel Dunbar2011-12-1224-24/+0
| | | | llvm-svn: 146409
* llvm-config: Default to "all" if no components are specified.Daniel Dunbar2011-12-121-0/+4
| | | | | | - Fixes PR11530. llvm-svn: 146388
* The second part of support for generating dwarf for assembly source files. ThisKevin Enderby2011-12-091-0/+14
| | | | | | | | | | generates the dwarf Compile Unit DIE and a dwarf subprogram DIE for each non-temporary label. The next part will be to get the clang driver to enable this when assembling a .s file. rdar://9275556 llvm-svn: 146262
* Update bcanalyzer to handle new USELIST_BLOCK/USELIST_CODE_ENTRY.Chad Rosier2011-12-071-0/+6
| | | | llvm-svn: 146079
* Have cmake build llvm-cov. Patch by arrowdodger.Duncan Sands2011-12-071-0/+1
| | | | llvm-svn: 146071
* When doing "opt -O2" verify the bitcode like is done forDuncan Sands2011-12-071-0/+2
| | | | | | "opt -std-compile-opts". llvm-svn: 146036
* Tidy up.Jim Grosbach2011-12-051-1/+1
| | | | llvm-svn: 145870
* Move global variables in TargetMachine into new TargetOptions class. As an APINick Lewycky2011-12-023-3/+162
| | | | | | | | | | | | change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. llvm-svn: 145714
* llvm-config: Replace with C++ version (was llvm-config-2).Daniel Dunbar2011-12-0112-1292/+418
| | | | | | - Another reapply of r144300, with hopefully one last fix. llvm-svn: 145623
* llvm-config-2: Fix --cflags and --includedir which pointed at the wrongDaniel Dunbar2011-12-011-2/+1
| | | | | | directory when running from a build directory. llvm-svn: 145622
* Revert commit 145449 (ddunbar) since it is breaking the dragonegg buildbots.Duncan Sands2011-12-0112-419/+1293
| | | | | | | | Original commit message: llvm-config: Replace with C++ version (was llvm-config-2). - Reapply of r144300, with lots of fixes/migration easement in between. llvm-svn: 145582
* llvm-config: Replace with C++ version (was llvm-config-2).Daniel Dunbar2011-11-2910-932/+58
| | | | | | - Reapply of r144300, with lots of fixes/migration easement in between. llvm-svn: 145449
* Fixed ObjectFile functions:Danil Malyshev2011-11-293-9/+11
| | | | | | | | | | | - getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145408
OpenPOWER on IntegriCloud