| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Bring back VLD1q and VST1q and use them for reloading / spilling Q ↵ | Evan Cheng | 2010-05-13 | 2 | -29/+83 | |
| | | | | | | | registers. This allows folding loads and stores into VMOVQ. llvm-svn: 103692 | |||||
| * | MC: Add MCAlignFragment::OnlyAlignAddress bit. This is a bit of magic that ↵ | Daniel Dunbar | 2010-05-13 | 1 | -1/+17 | |
| | | | | | | | says the align fragment shouldn't contribute to the logical section size, it is will be used for cleaning up the code to handle section alignment. llvm-svn: 103690 | |||||
| * | MC: Add MCSectionData::AddressSize, which is the size of the address space ↵ | Daniel Dunbar | 2010-05-13 | 1 | -6/+15 | |
| | | | | | | | consumed by the section. This can differ from both the section logical size, and the section size on disk (although the current code handles this without making an explicit distinction). llvm-svn: 103689 | |||||
| * | Take allocation hints from copy instructions to/from physregs. | Jakob Stoklund Olesen | 2010-05-13 | 1 | -18/+68 | |
| | | | | | | | This causes way more identity copies to be generated, ripe for coalescing. llvm-svn: 103686 | |||||
| * | More asserts around physreg uses | Jakob Stoklund Olesen | 2010-05-13 | 1 | -1/+11 | |
| | | | | | llvm-svn: 103685 | |||||
| * | Expand VMOVQQ into a pair of VMOVQ. | Evan Cheng | 2010-05-13 | 1 | -0/+27 | |
| | | | | | llvm-svn: 103684 | |||||
| * | Mark some pattern-less instructions as neverHasSideEffects. | Evan Cheng | 2010-05-13 | 2 | -1/+9 | |
| | | | | | llvm-svn: 103683 | |||||
| * | fix rdar://7965971 and a fixme: use ParseIdentifier in | Chris Lattner | 2010-05-13 | 1 | -13/+9 | |
| | | | | | | | | | ParseDirectiveDarwinZerofill instead of hard coding the check for identifier. This allows quoted symbol names to be used. llvm-svn: 103682 | |||||
| * | reapply r103668 with a fix. Never make "minor syntax changes" | Chris Lattner | 2010-05-13 | 2 | -3/+36 | |
| | | | | | | | after testing before committing. llvm-svn: 103681 | |||||
| * | If REG_SEQUENCE source is livein, copy it first. Also, update livevariables ↵ | Evan Cheng | 2010-05-13 | 1 | -4/+23 | |
| | | | | | | | information when a copy is introduced. llvm-svn: 103680 | |||||
| * | Do not attempt copy coalescing if the source and dest sub-register indices ↵ | Evan Cheng | 2010-05-12 | 1 | -2/+4 | |
| | | | | | | | do not match. llvm-svn: 103679 | |||||
| * | revert r103668 for now, it is apparently breaking things. | Chris Lattner | 2010-05-12 | 2 | -36/+3 | |
| | | | | | llvm-svn: 103677 | |||||
| * | moffset forms of moves are x86-32 only, make the parser | Chris Lattner | 2010-05-12 | 2 | -3/+36 | |
| | | | | | | | | | lower them to the correct x86-64 instructions since we don't have a clean way to handle this in td files yet. rdar://7947184 llvm-svn: 103668 | |||||
| * | Fix some potential issues in the pseudo instruction expansion phase: copy ↵ | Evan Cheng | 2010-05-12 | 1 | -35/+61 | |
| | | | | | | | implicit operands and memoperands. Also, expand instructions even if their defs are "dead" since they may have implicit kill operands. llvm-svn: 103667 | |||||
| * | MC: Move MCAlignFragment::EmitNops value out of the constructor. | Daniel Dunbar | 2010-05-12 | 2 | -7/+6 | |
| | | | | | llvm-svn: 103665 | |||||
| * | MC: Eliminate MCZeroFillFragment, it is no longer needed. | Daniel Dunbar | 2010-05-12 | 2 | -24/+2 | |
| | | | | | llvm-svn: 103664 | |||||
| * | MC: Explicitly check that only virtual fragments appear in virtual sections. | Daniel Dunbar | 2010-05-12 | 1 | -0/+23 | |
| | | | | | llvm-svn: 103663 | |||||
| * | MC: Switch MCFillFragment to storing total fill size instead of a count. ↵ | Daniel Dunbar | 2010-05-12 | 1 | -3/+3 | |
| | | | | | | | This allows using ValueSize==0 to represent a virtual fill. llvm-svn: 103662 | |||||
| * | MC: Drop support for alignment in ZeroFill fragment, we can just use | Daniel Dunbar | 2010-05-12 | 2 | -12/+10 | |
| | | | | | | | MCAlignFragments for this. llvm-svn: 103661 | |||||
| * | fix the encoding of the obscure "moffset" forms of moves, i386 | Chris Lattner | 2010-05-12 | 1 | -5/+6 | |
| | | | | | | | part first. rdar://7947184 llvm-svn: 103660 | |||||
| * | Clear CachedFunctionInfo upon Pass::releaseMemory. Because ValueMap will abort | Nick Lewycky | 2010-05-12 | 2 | -1/+9 | |
| | | | | | | | | | | | on RAUW of functions, this is a correctness issue instead of a mere memory usage problem. No testcase until the new MergeFunctions can land. llvm-svn: 103653 | |||||
| * | Simplify. | Daniel Dunbar | 2010-05-12 | 1 | -5/+3 | |
| | | | | | llvm-svn: 103651 | |||||
| * | MC: Factor out MCAssembler::LayoutFragment | Daniel Dunbar | 2010-05-12 | 1 | -74/+78 | |
| | | | | | llvm-svn: 103649 | |||||
| * | MC: Tweak section layout to not relying on accumulating address value. | Daniel Dunbar | 2010-05-12 | 1 | -7/+13 | |
| | | | | | llvm-svn: 103648 | |||||
| * | Remove a dead fixme. | Evan Cheng | 2010-05-12 | 1 | -1/+0 | |
| | | | | | llvm-svn: 103642 | |||||
| * | Make sure to add kill flags to the last use of a virtreg when it is redefined. | Jakob Stoklund Olesen | 2010-05-12 | 1 | -12/+22 | |
| | | | | | | | The X86 floating point stack pass and others depend on good kill flags. llvm-svn: 103635 | |||||
| * | MC: Simplify LayoutSection to just take the index of the section to layout. | Daniel Dunbar | 2010-05-12 | 1 | -18/+16 | |
| | | | | | llvm-svn: 103627 | |||||
| * | MC: Track section layout order explicitly, and use to simplify. | Daniel Dunbar | 2010-05-12 | 1 | -31/+15 | |
| | | | | | llvm-svn: 103616 | |||||
| * | stylistic change to MCSectionCOFF::PrintSwitchToSection COMDAT handling | Nathan Jeffords | 2010-05-12 | 1 | -7/+7 | |
| | | | | | | | Made a stylistic changed to the code/comments related to the unsupported COMDAT selection type IMAGE_COMDAT_SELECT_LARGEST based on from Anton Korobeynikov. llvm-svn: 103590 | |||||
| * | Remove unused variable. Tweak a comment while there. | Duncan Sands | 2010-05-12 | 1 | -2/+2 | |
| | | | | | llvm-svn: 103586 | |||||
| * | Add support for movi32 of global values to the new (MC) asm printer. | Rafael Espindola | 2010-05-12 | 3 | -6/+34 | |
| | | | | | llvm-svn: 103576 | |||||
| * | updated support for the COFF .linkonce | Nathan Jeffords | 2010-05-12 | 2 | -7/+27 | |
| | | | | | | | Now, the .linkonce directive is emitted as part of MCSectionCOFF::PrintSwitchToSection instead of AsmPrinter::EmitLinkage since it is an attribute of the section the symbol was placed into not the symbol itself. llvm-svn: 103568 | |||||
| * | vst instructions are modeled as this: | Evan Cheng | 2010-05-12 | 1 | -0/+26 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | v1024 = REG_SEQUENCE ... v1025 = EXTRACT_SUBREG v1024, 5 v1026 = EXTRACR_SUBREG v1024, 6 = VSTxx <addr>, v1025, v1026 The REG_SEQUENCE ensures the sources that feed into the VST instruction are getting the right register allocation so they form a large super- register. The extract_subreg will be coalesced away all would just work: v1024 = REG_SEQUENCE ... = VSTxx <addr>, v1024:5, v1024:6 The problem is if the coalescer isn't run, the extract_subreg instructions would stick around and there is no assurance v1025 and v1026 will get the right registers. As a short term workaround, teach the NEON pre-allocation pass to transfer the sub-register indices over. An alternative would be do it 2addr pass when reg_sequence's are eliminated. But that *seems* wrong and require updating liveness information. Another alternative is to do this in the scheduler when the instructions are created. But that would mean somehow the scheduler this has to be done for correctness reason. That's yucky as well. So for now, we are leaving this in the target specific pass. llvm-svn: 103540 | |||||
| * | Teach local regalloc about virtual registers with sub-indices. | Evan Cheng | 2010-05-12 | 1 | -9/+37 | |
| | | | | | llvm-svn: 103539 | |||||
| * | Code clean up. | Evan Cheng | 2010-05-12 | 1 | -1/+2 | |
| | | | | | llvm-svn: 103538 | |||||
| * | MC/X86: Extend suffix matching hack to match 'q' suffix. | Daniel Dunbar | 2010-05-12 | 1 | -1/+3 | |
| | | | | | llvm-svn: 103535 | |||||
| * | MC/Mach-O/x86_64: Add a new hook for checking whether a particular section can | Daniel Dunbar | 2010-05-12 | 2 | -0/+26 | |
| | | | | | | | | | be diced into atoms, and adjust getAtom() to take this into account. - This fixes relocations to symbols in fixed size literal sections, for example. llvm-svn: 103532 | |||||
| * | Avoid scoping issues, fix buildbots | Jakob Stoklund Olesen | 2010-05-12 | 1 | -20/+21 | |
| | | | | | llvm-svn: 103530 | |||||
| * | Add initial kill flag support to FastISel. | Dan Gohman | 2010-05-11 | 2 | -65/+143 | |
| | | | | | llvm-svn: 103529 | |||||
| * | Make Clang happy. | Daniel Dunbar | 2010-05-11 | 1 | -3/+3 | |
| | | | | | llvm-svn: 103528 | |||||
| * | MC/Mach-O/x86_64: Fix PCrel adjustment for x86_64, which was using the fixup | Daniel Dunbar | 2010-05-11 | 1 | -1/+2 | |
| | | | | | | | offset instead of the fixup address as intended. llvm-svn: 103527 | |||||
| * | MC/Mach-O: As Kevin pointed out, 'Address' is really an offset -- rename to ↵ | Daniel Dunbar | 2010-05-11 | 1 | -11/+11 | |
| | | | | | | | clarify. llvm-svn: 103526 | |||||
| * | MC/Mach-O: Fix a crash on invalid. | Daniel Dunbar | 2010-05-11 | 1 | -1/+4 | |
| | | | | | llvm-svn: 103525 | |||||
| * | Store the Dirty bit in the LiveReg structure instead of a bit vector. | Jakob Stoklund Olesen | 2010-05-11 | 1 | -34/+28 | |
| | | | | | llvm-svn: 103522 | |||||
| * | Keep track of the last place a live virtreg was used. | Jakob Stoklund Olesen | 2010-05-11 | 1 | -72/+118 | |
| | | | | | | | | This allows us to add accurate kill markers, something the scavenger likes. Add some more tests from ARM that needed this. llvm-svn: 103521 | |||||
| * | Don't set kill flags on uses of CopyFromReg nodes. InstrEmitter doesn't | Dan Gohman | 2010-05-11 | 1 | -9/+16 | |
| | | | | | | | | create separate virtual registers for CopyFromReg values, so uses of them don't necessarily kill the value. llvm-svn: 103519 | |||||
| * | Avoid breaking vstd when reg_sequence is not used. | Evan Cheng | 2010-05-11 | 1 | -1/+2 | |
| | | | | | llvm-svn: 103513 | |||||
| * | Silence warning | Jakob Stoklund Olesen | 2010-05-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 103508 | |||||
| * | Simplify this logic of creating a default Features object. | Bill Wendling | 2010-05-11 | 1 | -26/+8 | |
| | | | | | llvm-svn: 103507 | |||||
| * | Simplify the tracking of used physregs to a bulk bitor followed by a transitive | Jakob Stoklund Olesen | 2010-05-11 | 2 | -4/+18 | |
| | | | | | | | | | closure after allocating all blocks. Add a few more test cases for -regalloc=fast. llvm-svn: 103500 | |||||

