summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Add integer promotion support for vselectNadav Rotem2011-09-142-0/+10
| | | | llvm-svn: 139692
* Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND ↵Craig Topper2011-09-141-2/+2
| | | | | | from being recognized by disassembler. llvm-svn: 139691
* Make disassembling of VBLEND* print immediate as a XMM/YMM register name. ↵Craig Topper2011-09-141-0/+6
| | | | | | Fixes PR10917. llvm-svn: 139690
* One more patch towards JIT support for Mips.Bruno Cardoso Lopes2011-09-146-130/+287
| | | | | | | | | | | | | | - Add TSFlags for the instruction formats. The idea here is to use as much encoding as possible from getBinaryCodeForInstr, and having TSFLags formats for that would make it easier to encode most part of the instructions (since Mips encodings are pretty straightforward) - Improve the mips mechanism for compilation callback - Add Mips specific code for invalidating the instruction cache - Next patch will address wrong tablegen encoding Commit msg added by my own but the patch is from Sasa Stankovic. llvm-svn: 139688
* Teach the foldable tables about 128-bit AVX instructions and make theBruno Cardoso Lopes2011-09-142-50/+294
| | | | | | | | | | | | | | | alignment check for 256-bit classes more strict. There're no testcases but we catch more folding cases for AVX while running single and multi sources in the llvm testsuite. Since some 128-bit AVX instructions have different number of operands than their SSE counterparts, they are placed in different tables. 256-bit AVX instructions should also be added in the table soon. And there a few more 128-bit versions to handled, which should come in the following commits. llvm-svn: 139687
* Vector shuffle mask <i32 4, i32 5, i32 2, i32 3> should yield "movsd", not ↵Bruno Cardoso Lopes2011-09-141-1/+3
| | | | | | "movss". llvm-svn: 139686
* Don't rely in <algorithm> being pulled in transitively.Benjamin Kramer2011-09-141-0/+1
| | | | llvm-svn: 139684
* Object: make the following changes into SymbolRefBenjamin Kramer2011-09-143-3/+192
| | | | | | | | | | | - Add enum SymbolType and function getSymbolType() - Add function isGlobal() - it's returns true for symbols that can be used in another objects, such as library functions. - Rename function getAddress() to getOffset() and add new function getAddress(), because currently getAddress() returns section offset of symbol first byte. new getAddress() return symbol address. - Change usage SymbolRef::getAddress() to getOffset() in tools/llvm-nm and tools/llvm-objdump. Patch by Danil Malyshev! llvm-svn: 139683
* Remove unimplemented function prototypes from PathV2. They can be readded ↵Benjamin Kramer2011-09-141-3/+1
| | | | | | | | when someone cares enough. Patch by Aaron Ballman! llvm-svn: 139682
* DWARF: Port support for parsing .debug_aranges section from LLDB and wire it ↵Benjamin Kramer2011-09-147-2/+551
| | | | | | | | | up to llvm-dwarfdump. This is only one half of it, the part that caches address ranges from the DIEs when .debug_aranges is not available will be ported soon. llvm-svn: 139680
* ObjectFile: Add support for mach-o-style dSYM companion files.Benjamin Kramer2011-09-142-1/+2
| | | | llvm-svn: 139676
* DebugInfo: Don't print DIEs multiple times.Benjamin Kramer2011-09-143-5/+5
| | | | llvm-svn: 139671
* First step in supporting #line directives in assembler. This step parses theKevin Enderby2011-09-132-5/+69
| | | | | | | | | #line directives with the needed support in the lexer. Next will be to build a simple file/line# table mapping source SMLoc's for later use by diagnostics. And the last step will be to get the diagnostics to use the mapping for file and line numbers. llvm-svn: 139669
* Distinguish complex mapped values from forced recomputation.Jakob Stoklund Olesen2011-09-132-53/+40
| | | | | | | | | | | | | | | | | | When a ParentVNI maps to multiple defs in a new interval, its live range may still be derived directly from RegAssign by transferValues(). On the other hand, when instructions have been rematerialized or hoisted, it may be necessary to completely recompute live ranges using LiveRangeCalc::extend() to all uses. Use a bit in the value map to indicate that a live range must be recomputed. Rename markComplexMapped() to forceRecompute(). This fixes some live range verification errors when -split-spill-mode=size hoists back-copies by recomputing source ranges when RegAssign kills can't be moved. llvm-svn: 139660
* Remove unnecessary scope resolution operator.Jim Grosbach2011-09-131-3/+2
| | | | llvm-svn: 139656
* Implement -split-spill-mode=size.Jakob Stoklund Olesen2011-09-132-0/+164
| | | | | | | | | | Whenever the complement interval is defined by multiple copies of the same value, hoist those back-copies to the nearest common dominator. This ensures that at most one copy is inserted per value in the complement inteval, and no phi-defs are needed. llvm-svn: 139651
* Fix check for unaligned load/store so it doesn't catch over-aligned load/store.Eli Friedman2011-09-131-2/+2
| | | | llvm-svn: 139649
* Style & indentation tweaks.Benjamin Kramer2011-09-137-211/+201
| | | | llvm-svn: 139646
* Add a check to make sure schedulePass() has not deleted stale RequiredPass.Devang Patel2011-09-131-3/+5
| | | | llvm-svn: 139642
* Error out on CodeGen of unaligned load/store. Fix test so it isn't ↵Eli Friedman2011-09-131-2/+9
| | | | | | accidentally testing that case. llvm-svn: 139641
* Correct disassembly printing of Thumb2 post-incremented LDRD and STRD.Owen Anderson2011-09-132-6/+9
| | | | llvm-svn: 139639
* There's only 16 regs legal in a register list.Jim Grosbach2011-09-131-1/+1
| | | | llvm-svn: 139637
* Tidy up a few 80 column violations.Jim Grosbach2011-09-135-17/+17
| | | | llvm-svn: 139636
* Tidy up a bit.Jim Grosbach2011-09-131-152/+78
| | | | llvm-svn: 139635
* Add pattern used to match MipsLo, which is needed when the instruction selectorAkira Hatanaka2011-09-131-0/+5
| | | | | | | | tries to match a dead MipsLo node (explanation in the link below). http://article.gmane.org/gmane.comp.compilers.llvm.devel/42757/match=dagcombiner+dead llvm-svn: 139634
* Fix the assertion which checks the size of the input operand.Nadav Rotem2011-09-131-1/+1
| | | | llvm-svn: 139633
* swap vselect operand order - pr10907Nadav Rotem2011-09-131-14/+14
| | | | llvm-svn: 139630
* I know copy&paste!Benjamin Kramer2011-09-131-1/+1
| | | | llvm-svn: 139628
* Sketch out a DWARF parser.Benjamin Kramer2011-09-1318-1/+1884
| | | | | | | | | | This introduces a new library to LLVM: libDebugInfo. It will provide debug information parsing to LLVM. Much of the design and some of the code is taken from the LLDB project. It also contains an llvm-dwarfdump tool that can dump the abbrevs and DIEs from an object file. It can be used to write tests for DWARF input and output easily. llvm-svn: 139627
* Add the DataExtractor utility class.Benjamin Kramer2011-09-132-0/+176
| | | | | | | | | | It is an endian-aware helper that can read data from a StringRef. It will come in handy for DWARF parsing. This class is inspired by LLDB's DataExtractor, but is stripped down to the bare minimum needed for DWARF. Comes with unit tests! llvm-svn: 139626
* Add versions 256-bit versions of alignedstore and alignedload, to beBruno Cardoso Lopes2011-09-132-12/+23
| | | | | | | | more strict about the alignment checking. This was found by inspection and I don't have any testcases so far, although the llvm testsuite runs without any problem. llvm-svn: 139625
* Revert the remaining part of r139528. According to PR10907 the bug seemsBruno Cardoso Lopes2011-09-131-5/+5
| | | | | | to be in the VSELECT operands order, so I'll leave the fix for Nadav. llvm-svn: 139624
* Add vselect target support for targets that do not support blend but do supportNadav Rotem2011-09-133-2/+46
| | | | | | xor/and/or (For example SSE2). llvm-svn: 139623
* Support for PSP is gone too.Akira Hatanaka2011-09-131-7/+2
| | | | llvm-svn: 139622
* Use a cache to maintain list of machine basic blocks for a given UserValue.Devang Patel2011-09-131-10/+33
| | | | llvm-svn: 139616
* Add SplitEditor::markOverlappedComplement().Jakob Stoklund Olesen2011-09-132-2/+28
| | | | | | | | This function is used to flag values where the complement interval may overlap other intervals. Call it from overlapIntv, and use the flag to fully recompute those live ranges in transferValues(). llvm-svn: 139612
* Teach the Thumb ASM parser that BKPT is allowed in IT blocks, even though it ↵Owen Anderson2011-09-131-1/+4
| | | | | | is always executed unconditionally. llvm-svn: 139610
* Eliminate the extendRange() wrapper.Jakob Stoklund Olesen2011-09-132-20/+15
| | | | llvm-svn: 139608
* It is not necessary to search for mipsallegrex in target triple string.Akira Hatanaka2011-09-131-2/+1
| | | | llvm-svn: 139607
* Fix encoding of Thumb2 shifted register operands with RRX shifts.Owen Anderson2011-09-131-0/+1
| | | | llvm-svn: 139606
* Switch extendInBlock() to take a kill slot instead of the last use slot.Jakob Stoklund Olesen2011-09-134-16/+13
| | | | | | | Three out of four clients prefer this interface which is consistent with extendIntervalEndTo() and LiveRangeCalc::extend(). llvm-svn: 139604
* Use a separate LiveRangeCalc for the complement in spill modes.Jakob Stoklund Olesen2011-09-132-11/+30
| | | | | | | | | | The complement interval may overlap the other intervals created, so use a separate LiveRangeCalc instance to compute its live range. A LiveRangeCalc instance can only be shared among non-overlapping intervals. llvm-svn: 139603
* Only disassembler instructions with vvvv != 1111 if the instruction actually ↵Craig Topper2011-09-131-4/+13
| | | | | | uses the vvvv field to encode an operand. Fixes PR10851. llvm-svn: 139591
* Remove filter that was preventing MOVDQU/MOVDQA and their VEX forms from ↵Craig Topper2011-09-131-0/+22
| | | | | | being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848. llvm-svn: 139588
* Fix encoding of VMOVDQU to not simultaneously be 'TB OpSize' and 'XS'. 'XS' ↵Craig Topper2011-09-131-4/+4
| | | | | | is correct and seems to have been taking priority. llvm-svn: 139587
* [indvars] Revert r139579 until 401.bzip -arch i386 miscompilation is fixed. ↵Andrew Trick2011-09-131-1/+1
| | | | | | PR10920. llvm-svn: 139583
* Unbreak msvc.NAKAMURA Takumi2011-09-132-2/+2
| | | | llvm-svn: 139581
* Disable IV rewriting by default. See PR10916.Andrew Trick2011-09-131-1/+1
| | | | llvm-svn: 139579
* Zap some junk from the ARM instruction descriptions.Eli Friedman2011-09-134-67/+0
| | | | llvm-svn: 139575
* [indvars] Fix bugs in floating point IV range checks noticed by inspection.Andrew Trick2011-09-131-10/+10
| | | | llvm-svn: 139574
OpenPOWER on IntegriCloud