| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Fix an embarrassing runtime regression for RegAllocFast. | Jakob Stoklund Olesen | 2010-05-14 | 1 | -9/+31 |
| | | | | | | | | | | | | | This loop is quadratic in the capacity for a DenseMap: while(!map.empty()) map.erase(map.begin()); Instead we now do a normal begin() - end() iteration followed by map.clear(). That also has the nice sideeffect of shrinking the map capacity on demand. llvm-svn: 103747 | ||||
| * | Adding a v8i64 512-bit vector type. This will be used to model ARM NEON ↵ | Evan Cheng | 2010-05-13 | 1 | -0/+6 |
| | | | | | | | intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. llvm-svn: 103746 | ||||
| * | Implement a correct ui64->f32 conversion. The old | Dale Johannesen | 2010-05-13 | 1 | -0/+36 |
| | | | | | | | one was subject to double rounding in extreme cases. llvm-svn: 103744 | ||||
| * | Clean up RegAllocFast debug output | Jakob Stoklund Olesen | 2010-05-13 | 1 | -15/+14 |
| | | | | | llvm-svn: 103739 | ||||
| * | MC: Move Layout{Fragment,Section} into MCAsmLayout, and add LayoutFile(). | Daniel Dunbar | 2010-05-13 | 1 | -26/+27 |
| | | | | | llvm-svn: 103738 | ||||
| * | Teach MachineLICM and MachineSink how to clear kill flags conservatively | Dan Gohman | 2010-05-13 | 3 | -1/+27 |
| | | | | | | | when they move instructions. llvm-svn: 103737 | ||||
| * | Add comment about the pseudo registers QQ, each of which is a pair of Q ↵ | Evan Cheng | 2010-05-13 | 1 | -0/+5 |
| | | | | | | | registers. llvm-svn: 103731 | ||||
| * | Fix pr7110: For non-Darwin targets UnspilledCS1GPRs may include high registers. | Bob Wilson | 2010-05-13 | 1 | -1/+3 |
| | | | | | | | Do not use those for Thumb1 functions. llvm-svn: 103730 | ||||
| * | CMake: fixes 64 bit Visual Studio IDE build. Fixes bug 4936. | Oscar Fuentes | 2010-05-13 | 1 | -1/+6 |
| | | | | | | | Patch by Dimitry Andric! llvm-svn: 103727 | ||||
| * | Add a utility function for conservatively clearing kill flags, and make | Dan Gohman | 2010-05-13 | 2 | -1/+13 |
| | | | | | | | use of it in MachineCSE. llvm-svn: 103726 | ||||
| * | An Instruction has a trivial kill only if its use is in the same | Dan Gohman | 2010-05-13 | 1 | -2/+5 |
| | | | | | | | basic block. llvm-svn: 103725 | ||||
| * | MC: Factor out MCAssembler::ComputeFragmentSize. | Daniel Dunbar | 2010-05-13 | 1 | -36/+44 |
| | | | | | llvm-svn: 103724 | ||||
| * | MC: Add section layout order indices to MCSectionData. | Daniel Dunbar | 2010-05-13 | 1 | -0/+4 |
| | | | | | llvm-svn: 103715 | ||||
| * | MC: Move ordinal calculation, to make sure fragments synthesized for layout ↵ | Daniel Dunbar | 2010-05-13 | 1 | -21/+21 |
| | | | | | | | get assigned ordinals properly. llvm-svn: 103711 | ||||
| * | MC: Create dummy fragments to avoid ever having empty sections, which ↵ | Daniel Dunbar | 2010-05-13 | 1 | -8/+9 |
| | | | | | | | simplifies layout. llvm-svn: 103710 | ||||
| * | MC: Add MCAsmLayout::FragmentReplaced() helper function. | Daniel Dunbar | 2010-05-13 | 1 | -4/+6 |
| | | | | | llvm-svn: 103709 | ||||
| * | Properly set thread-local flag on globals during cpp emission | Anton Korobeynikov | 2010-05-13 | 1 | -0/+5 |
| | | | | | llvm-svn: 103702 | ||||
| * | Remove heinous tabs. | Nick Lewycky | 2010-05-13 | 1 | -7/+7 |
| | | | | | llvm-svn: 103700 | ||||
| * | Replace the core comparison login in merge functions. We can now merge | Nick Lewycky | 2010-05-13 | 1 | -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. llvm-svn: 103698 | ||||
| * | Fix -Asserts warning. | Daniel Dunbar | 2010-05-13 | 1 | -4/+2 |
| | | | | | llvm-svn: 103697 | ||||
| * | MC: Eliminate MCSectionData::{,Address,File}Size, which can now be computed by | Daniel Dunbar | 2010-05-13 | 1 | -42/+28 |
| | | | | | | | utility functions. llvm-svn: 103695 | ||||
| * | Fix -Asserts warning. | Daniel Dunbar | 2010-05-13 | 1 | -0/+1 |
| | | | | | llvm-svn: 103694 | ||||
| * | MC: Switch to using explicit MCAlignFragments with OnlyAlignAddress bit instead | Daniel Dunbar | 2010-05-13 | 1 | -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. llvm-svn: 103693 | ||||
| * | 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 | ||||

