summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Bring back VLD1q and VST1q and use them for reloading / spilling Q ↵Evan Cheng2010-05-132-29/+83
| | | | | | registers. This allows folding loads and stores into VMOVQ. llvm-svn: 103692
* MC/Mach-O: Add another zerofill test to improve coverage.Daniel Dunbar2010-05-131-0/+109
| | | | llvm-svn: 103691
* MC: Add MCAlignFragment::OnlyAlignAddress bit. This is a bit of magic that ↵Daniel Dunbar2010-05-132-2/+28
| | | | | | 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 Dunbar2010-05-133-9/+30
| | | | | | 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 Olesen2010-05-133-21/+71
| | | | | | This causes way more identity copies to be generated, ripe for coalescing. llvm-svn: 103686
* More asserts around physreg usesJakob Stoklund Olesen2010-05-131-1/+11
| | | | llvm-svn: 103685
* Expand VMOVQQ into a pair of VMOVQ.Evan Cheng2010-05-131-0/+27
| | | | llvm-svn: 103684
* Mark some pattern-less instructions as neverHasSideEffects.Evan Cheng2010-05-132-1/+9
| | | | llvm-svn: 103683
* fix rdar://7965971 and a fixme: use ParseIdentifier inChris Lattner2010-05-132-13/+13
| | | | | | | | 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 Lattner2010-05-134-4/+43
| | | | | | after testing before committing. llvm-svn: 103681
* If REG_SEQUENCE source is livein, copy it first. Also, update livevariables ↵Evan Cheng2010-05-131-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 Cheng2010-05-121-2/+4
| | | | | | do not match. llvm-svn: 103679
* revert r103668 for now, it is apparently breaking things.Chris Lattner2010-05-124-43/+4
| | | | llvm-svn: 103677
* moffset forms of moves are x86-32 only, make the parserChris Lattner2010-05-124-4/+43
| | | | | | | | 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 Cheng2010-05-121-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 Dunbar2010-05-123-14/+14
| | | | llvm-svn: 103665
* MC: Eliminate MCZeroFillFragment, it is no longer needed.Daniel Dunbar2010-05-123-51/+3
| | | | llvm-svn: 103664
* MC: Explicitly check that only virtual fragments appear in virtual sections.Daniel Dunbar2010-05-121-0/+23
| | | | llvm-svn: 103663
* MC: Switch MCFillFragment to storing total fill size instead of a count. ↵Daniel Dunbar2010-05-122-9/+13
| | | | | | This allows using ValueSize==0 to represent a virtual fill. llvm-svn: 103662
* MC: Drop support for alignment in ZeroFill fragment, we can just useDaniel Dunbar2010-05-123-20/+12
| | | | | | MCAlignFragments for this. llvm-svn: 103661
* fix the encoding of the obscure "moffset" forms of moves, i386Chris Lattner2010-05-122-5/+13
| | | | | | part first. rdar://7947184 llvm-svn: 103660
* Clear CachedFunctionInfo upon Pass::releaseMemory. Because ValueMap will abortNick Lewycky2010-05-123-1/+12
| | | | | | | | | | 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
* lit: Fix a sh lexing bug which caused annotate-token.m to fail when run with theDaniel Dunbar2010-05-121-0/+7
| | | | | | | | | | internal shell parser; we weren't lexing the quotes in a command like:: clang -DFOO='hello' correctly. llvm-svn: 103652
* Simplify.Daniel Dunbar2010-05-121-5/+3
| | | | llvm-svn: 103651
* MC: Factor out MCAssembler::LayoutFragmentDaniel Dunbar2010-05-122-74/+83
| | | | llvm-svn: 103649
* MC: Tweak section layout to not relying on accumulating address value.Daniel Dunbar2010-05-121-7/+13
| | | | llvm-svn: 103648
* ADT: Add ilist_node::get{Prev,Next}Node, which return the adjacent node or null.Daniel Dunbar2010-05-122-0/+89
| | | | | | | | | | | | | | | | | | | | - This provides a convenient alternative to using something llvm::prior or manual iterator access, for example:: if (T *Prev = foo->getPrevNode()) ... instead of:: iterator it(foo); if (it != begin()) { --it; ... } - Chris, please review. llvm-svn: 103647
* Remove a dead fixme.Evan Cheng2010-05-121-1/+0
| | | | llvm-svn: 103642
* Make sure to add kill flags to the last use of a virtreg when it is redefined.Jakob Stoklund Olesen2010-05-122-12/+81
| | | | | | The X86 floating point stack pass and others depend on good kill flags. llvm-svn: 103635
* Test case for r103633.Devang Patel2010-05-121-0/+17
| | | | llvm-svn: 103634
* MC: Simplify LayoutSection to just take the index of the section to layout.Daniel Dunbar2010-05-123-31/+26
| | | | llvm-svn: 103627
* lit: Fix OneCommandPerFileTest format when tests are specified directly.Daniel Dunbar2010-05-121-1/+3
| | | | llvm-svn: 103626
* lit: Add support for 'lit ... @foo', which reads a list of tests to run fromDaniel Dunbar2010-05-121-1/+17
| | | | | | foo. llvm-svn: 103625
* MC: Track section layout order explicitly, and use to simplify.Daniel Dunbar2010-05-122-32/+35
| | | | llvm-svn: 103616
* stylistic change to MCSectionCOFF::PrintSwitchToSection COMDAT handlingNathan Jeffords2010-05-121-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 Sands2010-05-121-2/+2
| | | | llvm-svn: 103586
* Add support for movi32 of global values to the new (MC) asm printer.Rafael Espindola2010-05-124-7/+37
| | | | llvm-svn: 103576
* Testcase for llvm 103572 (7898991).Dale Johannesen2010-05-121-0/+31
| | | | llvm-svn: 103574
* updated support for the COFF .linkonceNathan Jeffords2010-05-122-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 Cheng2010-05-121-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 Cheng2010-05-121-9/+37
| | | | llvm-svn: 103539
* Code clean up.Evan Cheng2010-05-121-1/+2
| | | | llvm-svn: 103538
* MC/X86: Extend suffix matching hack to match 'q' suffix.Daniel Dunbar2010-05-122-1/+7
| | | | llvm-svn: 103535
* Added a trivial function to modify the flags field of MCSymbolData class. ↵Nathan Jeffords2010-05-121-0/+5
| | | | | | The function takes the value and a mask, and clears the mask bits before applying the value. llvm-svn: 103534
* MC/Mach-O/x86_64: Add a new hook for checking whether a particular section canDaniel Dunbar2010-05-124-66/+162
| | | | | | | | 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
* Enable a bunch more -regalloc=fast testsJakob Stoklund Olesen2010-05-1215-17/+38
| | | | llvm-svn: 103531
* Avoid scoping issues, fix buildbotsJakob Stoklund Olesen2010-05-121-20/+21
| | | | llvm-svn: 103530
* Add initial kill flag support to FastISel.Dan Gohman2010-05-114-87/+180
| | | | llvm-svn: 103529
* Make Clang happy.Daniel Dunbar2010-05-111-3/+3
| | | | llvm-svn: 103528
* MC/Mach-O/x86_64: Fix PCrel adjustment for x86_64, which was using the fixupDaniel Dunbar2010-05-112-79/+92
| | | | | | offset instead of the fixup address as intended. llvm-svn: 103527
OpenPOWER on IntegriCloud