aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* MC: Move Layout{Fragment,Section} into MCAsmLayout, and add LayoutFile().Daniel Dunbar2010-05-131-26/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103738 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach MachineLICM and MachineSink how to clear kill flags conservativelyDan Gohman2010-05-133-1/+27
| | | | | | | when they move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103737 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comment about the pseudo registers QQ, each of which is a pair of Q ↵Evan Cheng2010-05-131-0/+5
| | | | | | registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103731 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix pr7110: For non-Darwin targets UnspilledCS1GPRs may include high registers.Bob Wilson2010-05-131-1/+3
| | | | | | | Do not use those for Thumb1 functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103730 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: fixes 64 bit Visual Studio IDE build. Fixes bug 4936.Oscar Fuentes2010-05-131-1/+6
| | | | | | | Patch by Dimitry Andric! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103727 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a utility function for conservatively clearing kill flags, and makeDan Gohman2010-05-132-1/+13
| | | | | | | use of it in MachineCSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103726 91177308-0d34-0410-b5e6-96231b3b80d8
* An Instruction has a trivial kill only if its use is in the sameDan Gohman2010-05-131-2/+5
| | | | | | | basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103725 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Factor out MCAssembler::ComputeFragmentSize.Daniel Dunbar2010-05-131-36/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103724 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Add section layout order indices to MCSectionData.Daniel Dunbar2010-05-131-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103715 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Move ordinal calculation, to make sure fragments synthesized for layout ↵Daniel Dunbar2010-05-131-21/+21
| | | | | | get assigned ordinals properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103711 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Create dummy fragments to avoid ever having empty sections, which ↵Daniel Dunbar2010-05-131-8/+9
| | | | | | simplifies layout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103710 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Add MCAsmLayout::FragmentReplaced() helper function.Daniel Dunbar2010-05-131-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103709 91177308-0d34-0410-b5e6-96231b3b80d8
* Properly set thread-local flag on globals during cpp emissionAnton Korobeynikov2010-05-131-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103702 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove heinous tabs.Nick Lewycky2010-05-131-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103700 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace the core comparison login in merge functions. We can now mergeNick Lewycky2010-05-131-192/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | vector<>::push_back() in: int foo(vector<int> &a, vector<unsigned> &b) { a.push_back(10); b.push_back(11); } to two calls to the same push_back function, or fold away the two copies of push_back() in: struct T { int; }; struct S { char; }; vector<T*> t; vector<S*> s; void f(T *x) { t.push_back(x); } void g(S *x) { s.push_back(x); } but leave f() and g() separate, since they refer to two different global variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103698 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix -Asserts warning.Daniel Dunbar2010-05-131-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103697 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Eliminate MCSectionData::{,Address,File}Size, which can now be computed byDaniel Dunbar2010-05-131-42/+28
| | | | | | utility functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103695 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix -Asserts warning.Daniel Dunbar2010-05-131-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103694 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Switch to using explicit MCAlignFragments with OnlyAlignAddress bit insteadDaniel Dunbar2010-05-131-22/+31
| | | | | | | | of manually doing padding/editing layout in LayoutSection(). - This probably seems like six-of-one and half-dozen of another, but there is a method to my madness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103693 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103692 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Add MCAlignFragment::OnlyAlignAddress bit. This is a bit of magic that ↵Daniel Dunbar2010-05-131-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103690 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Add MCSectionData::AddressSize, which is the size of the address space ↵Daniel Dunbar2010-05-131-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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103689 91177308-0d34-0410-b5e6-96231b3b80d8
* Take allocation hints from copy instructions to/from physregs.Jakob Stoklund Olesen2010-05-131-18/+68
| | | | | | This causes way more identity copies to be generated, ripe for coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103686 91177308-0d34-0410-b5e6-96231b3b80d8
* More asserts around physreg usesJakob Stoklund Olesen2010-05-131-1/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103685 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand VMOVQQ into a pair of VMOVQ.Evan Cheng2010-05-131-0/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103684 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark some pattern-less instructions as neverHasSideEffects.Evan Cheng2010-05-132-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103683 91177308-0d34-0410-b5e6-96231b3b80d8
* fix rdar://7965971 and a fixme: use ParseIdentifier inChris Lattner2010-05-131-13/+9
| | | | | | | | | | ParseDirectiveDarwinZerofill instead of hard coding the check for identifier. This allows quoted symbol names to be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103682 91177308-0d34-0410-b5e6-96231b3b80d8
* reapply r103668 with a fix. Never make "minor syntax changes"Chris Lattner2010-05-132-3/+36
| | | | | | | after testing before committing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103681 91177308-0d34-0410-b5e6-96231b3b80d8
* If REG_SEQUENCE source is livein, copy it first. Also, update livevariables ↵Evan Cheng2010-05-131-4/+23
| | | | | | information when a copy is introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103680 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not attempt copy coalescing if the source and dest sub-register indices ↵Evan Cheng2010-05-121-2/+4
| | | | | | do not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103679 91177308-0d34-0410-b5e6-96231b3b80d8
* revert r103668 for now, it is apparently breaking things.Chris Lattner2010-05-122-36/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103677 91177308-0d34-0410-b5e6-96231b3b80d8
* moffset forms of moves are x86-32 only, make the parserChris Lattner2010-05-122-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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103668 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103667 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Move MCAlignFragment::EmitNops value out of the constructor.Daniel Dunbar2010-05-122-7/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103665 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Eliminate MCZeroFillFragment, it is no longer needed.Daniel Dunbar2010-05-122-24/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103664 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Explicitly check that only virtual fragments appear in virtual sections.Daniel Dunbar2010-05-121-0/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103663 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Switch MCFillFragment to storing total fill size instead of a count. ↵Daniel Dunbar2010-05-121-3/+3
| | | | | | This allows using ValueSize==0 to represent a virtual fill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103662 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Drop support for alignment in ZeroFill fragment, we can just useDaniel Dunbar2010-05-122-12/+10
| | | | | | MCAlignFragments for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103661 91177308-0d34-0410-b5e6-96231b3b80d8
* fix the encoding of the obscure "moffset" forms of moves, i386Chris Lattner2010-05-121-5/+6
| | | | | | | part first. rdar://7947184 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103660 91177308-0d34-0410-b5e6-96231b3b80d8
* Clear CachedFunctionInfo upon Pass::releaseMemory. Because ValueMap will abortNick Lewycky2010-05-122-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103653 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify.Daniel Dunbar2010-05-121-5/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103651 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Factor out MCAssembler::LayoutFragmentDaniel Dunbar2010-05-121-74/+78
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103649 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Tweak section layout to not relying on accumulating address value.Daniel Dunbar2010-05-121-7/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103648 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a dead fixme.Evan Cheng2010-05-121-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103642 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to add kill flags to the last use of a virtreg when it is redefined.Jakob Stoklund Olesen2010-05-121-12/+22
| | | | | | The X86 floating point stack pass and others depend on good kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103635 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Simplify LayoutSection to just take the index of the section to layout.Daniel Dunbar2010-05-121-18/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103627 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Track section layout order explicitly, and use to simplify.Daniel Dunbar2010-05-121-31/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103616 91177308-0d34-0410-b5e6-96231b3b80d8
* 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103590 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused variable. Tweak a comment while there.Duncan Sands2010-05-121-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103586 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for movi32 of global values to the new (MC) asm printer.Rafael Espindola2010-05-123-6/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103576 91177308-0d34-0410-b5e6-96231b3b80d8