summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* MC/AsmMatcher: Add support for custom conversion functions.Daniel Dunbar2011-02-042-1/+27
| | | | llvm-svn: 124870
* Silence uninitialized value warnings.David Greene2011-02-041-4/+4
| | | | llvm-svn: 124869
* [AVX] Support VSINSERTF128 with more patterns and appropriateDavid Greene2011-02-044-0/+77
| | | | | | | infrastructure. This makes lowering 256-bit vectors to 128-bit vectors simple when 256-bit vector support is not available. llvm-svn: 124868
* Make Win32's header file name lower for cross build on case-sensitive ↵NAKAMURA Takumi2011-02-044-6/+6
| | | | | | filesystem. llvm-svn: 124864
* LLVM_ON_WIN32 is not defined on config-ix.cmake. Use something else.Oscar Fuentes2011-02-041-4/+9
| | | | llvm-svn: 124857
* Add the tablegenned files to the `clean' target.Oscar Fuentes2011-02-041-0/+5
| | | | llvm-svn: 124854
* Introducing a new method of tracking register pressure. We can'tAndrew Trick2011-02-045-120/+176
| | | | | | | | | | | | | | | precisely track pressure on a selection DAG, but we can at least keep it balanced. This design accounts for various interesting aspects of selection DAGS: register and subregister copies, glued nodes, dead nodes, unused registers, etc. Added SUnit::NumRegDefsLeft and ScheduleDAGSDNodes::RegDefIter. Note: I disabled PrescheduleNodesWithMultipleUses when register pressure is enabled, based on no evidence other than I don't think it makes sense to have both enabled. llvm-svn: 124853
* DebugLoc associated with a machine instruction is used to emit location ↵Devang Patel2011-02-043-22/+101
| | | | | | entries. DebugLoc associated with a DBG_VALUE is used to identify lexical scope of the variable. After register allocation, while inserting DBG_VALUE remember original debug location for the first instruction and reuse it, otherwise dwarf writer may be mislead in identifying the variable's scope. llvm-svn: 124845
* Update comments.Evan Cheng2011-02-041-2/+3
| | | | llvm-svn: 124843
* Skip unused values.Jakob Stoklund Olesen2011-02-041-1/+3
| | | | llvm-svn: 124842
* Also compute interference intervals for blocks with no uses.Jakob Stoklund Olesen2011-02-041-3/+1
| | | | | | | | When the live range is live through a block that doesn't use the register, but that has interference, region splitting wants to split at the top and bottom of the basic block. llvm-svn: 124839
* Verify kill flags conservatively.Jakob Stoklund Olesen2011-02-041-18/+5
| | | | | | | | | | Allow a live range to end with a kill flag, but don't allow a kill flag that doesn't end the live range. This makes the machine code verifier more useful during register allocation when kill flag computation is deferred. llvm-svn: 124838
* Tidy up a bit.Jim Grosbach2011-02-031-3/+3
| | | | llvm-svn: 124832
* Do not sign extend floating-point values in the asm parser.Bob Wilson2011-02-031-1/+1
| | | | llvm-svn: 124831
* Remove trailing whitespaceBob Wilson2011-02-031-2/+2
| | | | llvm-svn: 124830
* Edit a comment for consistency.Bob Wilson2011-02-031-1/+1
| | | | llvm-svn: 124829
* whitespaceAndrew Trick2011-02-031-18/+18
| | | | llvm-svn: 124827
* SimplifyCFG: Also transform switches that represent a range comparison but ↵Benjamin Kramer2011-02-032-6/+57
| | | | | | | | are not sorted into sub+icmp. This transforms another 1000 switches in gcc.c. llvm-svn: 124826
* Moved to Clang's source tree its configuration options and associatedOscar Fuentes2011-02-032-24/+0
| | | | | | macros. llvm-svn: 124824
* Factor the computation of the basename of libraries. This avoids renamingRafael Espindola2011-02-031-5/+7
| | | | | | | them on install. Before we would have LLVMgold.so on the build directory but libLLVMgold.so on the install dir. llvm-svn: 124821
* Fix 80-column violations and whitespace.Bob Wilson2011-02-032-4/+5
| | | | llvm-svn: 124819
* Changes for building Clang and others using LLVM as an externalOscar Fuentes2011-02-037-157/+186
| | | | | | | | | | | | | library. Installs tblgen (required by Clang). Translates handling of user settings and platform-dependant options to its own file, where it can included by another project. Installs the .cmake files required by projects like Clang. llvm-svn: 124816
* Ensure that the computed interference intervals actually overlap their basic ↵Jakob Stoklund Olesen2011-02-031-3/+12
| | | | | | blocks. llvm-svn: 124815
* Tweak debug output from SlotIndexes.Jakob Stoklund Olesen2011-02-031-1/+5
| | | | llvm-svn: 124814
* Add debug output and asserts to the phi-connecting code.Jakob Stoklund Olesen2011-02-031-2/+13
| | | | llvm-svn: 124813
* Fix coloring bug when mapping values in the middle of a live-through block.Jakob Stoklund Olesen2011-02-031-7/+7
| | | | | | | | | | If the found value is not live-through the block, we should only add liveness up to the requested slot index. When the value is live-through, the whole block should be colored. Bug found by SSA verification in the machine code verifier. llvm-svn: 124812
* Return live range end points from SplitEditor::enter*/leave*.Jakob Stoklund Olesen2011-02-033-62/+48
| | | | | | | These end points come from the inserted copies, and can be passed directly to useIntv. This simplifies the coloring code. llvm-svn: 124799
* Silence an MSVC warningJakob Stoklund Olesen2011-02-031-1/+1
| | | | llvm-svn: 124798
* [AVX] VEXTRACTF128 support. This commit includes patterns forDavid Greene2011-02-034-0/+76
| | | | | | | | | | matching EXTRACT_SUBVECTOR to VEXTRACTF128 along with support routines to examine and translate index values. VINSERTF128 comes next. With these two in place we can begin supporting more AVX operations as INSERT/EXTRACT can be used as a fallback when 256-bit support is not available. llvm-svn: 124797
* Add XCore intrinsics for resource instructions.Richard Osborne2011-02-033-4/+168
| | | | llvm-svn: 124794
* cmake/*: Add svn:eol-style=native and fix CRLF.NAKAMURA Takumi2011-02-032-40/+39
| | | | llvm-svn: 124793
* Improve threading of comparisons over select instructions (spotted by myDuncan Sands2011-02-032-3/+60
| | | | | | | | | | auto-simplifier). This has a big impact on Ada code, but not much else. Unfortunately the impact is mostly negative! This is due to PR9004 (aka SCCP failing to resolve conditional branch conditions in the destination blocks of the branch), in which simple correlated expressions are not resolved but complicated ones are, so simplifying has a bad effect! llvm-svn: 124788
* Part of this test is invariant inside the inner loop - move it outsideDuncan Sands2011-02-031-14/+16
| | | | | | the loop. llvm-svn: 124784
* test/Makefile: "check-all" should update tools/clang/test/Unit/lit.site.cfg, ↵NAKAMURA Takumi2011-02-031-1/+1
| | | | | | too. Follow up to clang r124777. llvm-svn: 124783
* Reapply this.Eric Christopher2011-02-035-225/+182
| | | | llvm-svn: 124779
* Temporarily revert 124765 in an attempt to find the cycle breaking bootstrap.Eric Christopher2011-02-035-182/+225
| | | | llvm-svn: 124778
* Platform tests for `sys/uio.h' header and `writev' function.Oscar Fuentes2011-02-032-0/+10
| | | | | | This is the cmake equivalent for r124769. llvm-svn: 124775
* Add -march to fix the bots.Rafael Espindola2011-02-031-1/+1
| | | | llvm-svn: 124774
* Fix PR9127 by reversing the operands even if they have more then one use.Rafael Espindola2011-02-032-2/+14
| | | | | | | | Reversing the operands allows us to fold, but doesn't force us to. Also, at this point the DAG is still being optimized, so the check for hasOneUse is not very precise. llvm-svn: 124773
* raw_fd_ostream: Add a SetUseAtomicWrites() method (uses writev).Daniel Dunbar2011-02-032-3/+35
| | | | llvm-svn: 124771
* Regenerate configure.Daniel Dunbar2011-02-032-2/+10
| | | | llvm-svn: 124770
* configure: Add checks for <sys/uio.h> and writev().Daniel Dunbar2011-02-031-2/+2
| | | | llvm-svn: 124769
* Defer SplitKit value mapping until all defs are available.Jakob Stoklund Olesen2011-02-035-225/+182
| | | | | | | | | | | | | | | | | | | The greedy register allocator revealed some problems with the value mapping in SplitKit. We would sometimes start mapping values before all defs were known, and that could change a value from a simple 1-1 mapping to a multi-def mapping that requires ssa update. The new approach collects all defs and register assignments first without filling in any live intervals. Only when finish() is called, do we compute liveness and mapped values. At this time we know with certainty which values map to multiple values in a split range. This also has the advantage that we can compute live ranges based on the remaining uses after rematerializing at split points. The current implementation has many opportunities for compile time optimization. llvm-svn: 124765
* Update docs to match reality.Devang Patel2011-02-031-10/+9
| | | | llvm-svn: 124761
* Fix typo in comment.Devang Patel2011-02-031-1/+1
| | | | llvm-svn: 124759
* Add support to describe template value parameter in debug info.Devang Patel2011-02-026-1/+89
| | | | llvm-svn: 124755
* Add support to describe template parameter type in debug info.Devang Patel2011-02-026-3/+97
| | | | llvm-svn: 124752
* Reenable the transform "(X*Y)/Y->X" when the multiplication is known not toDuncan Sands2011-02-022-5/+9
| | | | | | | | overflow (nsw flag), which was disabled because it breaks 254.gap. I have informed the GAP authors of the mistake in their code, and arranged for the testsuite to use -fwrapv when compiling this benchmark. llvm-svn: 124746
* Changed the TableGen created MatchInstructionImpl() setting of ErrorInfo.Kevin Enderby2011-02-021-3/+1
| | | | | | | | | | | The algorithm for identifying which operand is invalid will now always point to some operand and not the mnemonic sometimes. The change is now that ErrorInfo is the index of the highest operand that does not match for any of the matching mnemonics records. And no longer the ~0U value when the mnemonic matches and not every record with a matching mnemonic has the same mismatching operand index. llvm-svn: 124734
* Update comment to match my recent change.Bob Wilson2011-02-021-2/+2
| | | | llvm-svn: 124725
OpenPOWER on IntegriCloud