Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Layout helper function. | Matt Fleming | 2010-08-16 | 1 | -0/+34 | |
| | | | | | | | | Introduce a helper method to add a section to the end of a layout. This will be used by the ELF ObjectWriter code to add the metadata sections (symbol table, etc) to the end of an object file. llvm-svn: 111171 | |||||
* | Record a symbol's size which is needed for ELF symbol tables. | Matt Fleming | 2010-08-16 | 1 | -1/+2 | |
| | | | | llvm-svn: 111170 | |||||
* | MC: Initialize MCFragment::Offset, noticed by Cameron Esfahani. | Daniel Dunbar | 2010-07-30 | 1 | -1/+2 | |
| | | | | llvm-svn: 109875 | |||||
* | MC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh). | Daniel Dunbar | 2010-07-28 | 1 | -0/+3 | |
| | | | | llvm-svn: 109649 | |||||
* | Initial modifications to MCAssembler and TargetMachine for the MCJIT. | Reid Kleckner | 2010-07-22 | 1 | -4/+10 | |
| | | | | | | Patch by Olivier Meurant! llvm-svn: 109080 | |||||
* | The variable ValueSize is set to 1 on both code paths, and then | Duncan Sands | 2010-06-29 | 1 | -5/+1 | |
| | | | | | | ignored! Remove it. llvm-svn: 107138 | |||||
* | MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol. | Daniel Dunbar | 2010-06-16 | 1 | -6/+5 | |
| | | | | llvm-svn: 106142 | |||||
* | Don't call flush() at a library level which isn't checking for errors | Dan Gohman | 2010-06-01 | 1 | -1/+0 | |
| | | | | | | and doesn't know where the output is going. llvm-svn: 105274 | |||||
* | MC: When running with -mc-relax-all, we can eagerly relax instructions and ↵ | Daniel Dunbar | 2010-05-26 | 1 | -5/+2 | |
| | | | | | | avoid creating unnecessary MCInstFragments. llvm-svn: 104736 | |||||
* | MC: Change RelaxInstruction to only take the input and output instructions. | Daniel Dunbar | 2010-05-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 104713 | |||||
* | MC: Simplify MayNeedRelaxation to not provide the fixups, so we can query it | Daniel Dunbar | 2010-05-26 | 1 | -1/+1 | |
| | | | | | | before encoding. llvm-svn: 104707 | |||||
* | MC: Eliminate MCAsmFixup, replace with MCFixup. | Daniel Dunbar | 2010-05-26 | 1 | -12/+10 | |
| | | | | llvm-svn: 104699 | |||||
* | MC: Use accessors for access to MCAsmFixup. | Daniel Dunbar | 2010-05-26 | 1 | -6/+7 | |
| | | | | llvm-svn: 104697 | |||||
* | MC: Eliminate MCFragment vtable, which was unnecessary. | Daniel Dunbar | 2010-05-26 | 1 | -69/+62 | |
| | | | | llvm-svn: 104689 | |||||
* | MC: Switch to completely lazy layout. | Daniel Dunbar | 2010-05-14 | 1 | -19/+35 | |
| | | | | | | - The eliminates the last major algorithmic problem with MC. llvm-svn: 103754 | |||||
* | MC: Extend MCAsmLayout to explicitly track which fragments have been layed ↵ | Daniel Dunbar | 2010-05-14 | 1 | -10/+44 | |
| | | | | | | out, and enforce several invariants to LayoutFragment to ensure we only do layout in a sensible order. llvm-svn: 103753 | |||||
* | MC: Implicitly assign section addresses when the previous fragment is layed out. | Daniel Dunbar | 2010-05-14 | 1 | -1/+11 | |
| | | | | llvm-svn: 103752 | |||||
* | MC: Switch MCFragment to storing the layout order index, not its index in ↵ | Daniel Dunbar | 2010-05-14 | 1 | -13/+14 | |
| | | | | | | the file. llvm-svn: 103751 | |||||
* | MC: Change LayoutSection() to only do the section initializiation. | Daniel Dunbar | 2010-05-14 | 1 | -25/+13 | |
| | | | | | | Also, elimminate MCAsmLayout::set*, which are no longer needed. llvm-svn: 103750 | |||||
* | MC: Move Layout{Fragment,Section} into MCAsmLayout, and add LayoutFile(). | Daniel Dunbar | 2010-05-13 | 1 | -26/+27 | |
| | | | | llvm-svn: 103738 | |||||
* | 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 | |||||
* | 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 | |||||
* | 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 | |||||
* | 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 | |||||
* | MC: Move MCAlignFragment::EmitNops value out of the constructor. | Daniel Dunbar | 2010-05-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 103665 | |||||
* | MC: Eliminate MCZeroFillFragment, it is no longer needed. | Daniel Dunbar | 2010-05-12 | 1 | -23/+1 | |
| | | | | 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 | 1 | -11/+4 | |
| | | | | | | MCAlignFragments for this. llvm-svn: 103661 | |||||
* | 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 | |||||
* | 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 | |||||
* | MC/Mach-O/x86_64: Add a new hook for checking whether a particular section can | Daniel Dunbar | 2010-05-12 | 1 | -0/+6 | |
| | | | | | | | | 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 | |||||
* | MC/Mach-O x86_64: Switch to using fragment atom symbol. | Daniel Dunbar | 2010-05-11 | 1 | -37/+6 | |
| | | | | | | | | | - This eliminates getAtomForAddress() (which was a linear search) and simplifies getAtom(). - This also fixes some correctness problems where local labels at the same address as non-local labels could be assigned to the wrong atom. llvm-svn: 103480 | |||||
* | MC/Mach-O: Explicitly track atoms, as represented by their defining symbol, ↵ | Daniel Dunbar | 2010-05-10 | 1 | -5/+1 | |
| | | | | | | for each fragment (not yet used). llvm-svn: 103438 | |||||
* | llvm-mc: Fix case were we would skip a line in the .s file after an instruction | Daniel Dunbar | 2010-05-04 | 1 | -1/+3 | |
| | | | | | | | | match failure. Also, fixes a few memory leak FIXMEs. llvm-svn: 102986 | |||||
* | rename llvm::llvm_report_error -> llvm::report_fatal_error | Chris Lattner | 2010-04-07 | 1 | -6/+6 | |
| | | | | llvm-svn: 100709 | |||||
* | llvm-mc: Add a -mc-relax-all option, which relaxes every fixup. We always need | Daniel Dunbar | 2010-03-25 | 1 | -6/+18 | |
| | | | | | | | exactly two passes in that case, and don't ever need to recompute any layout, so this is a nice baseline for relaxation performance. llvm-svn: 99563 | |||||
* | MC: Stop restarting layout on every relaxation. | Daniel Dunbar | 2010-03-25 | 1 | -6/+39 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Still O(N^2), just a faster form, and now its the MCAsmLayout's fault. On the .s I am tuning against (combine.s from 403.gcc): -- ddunbar@lordcrumb:MC$ diff stats-before.txt stats-after.txt 5,10c5,10 < 1728 assembler - Number of assembler layout and relaxation steps < 7707 assembler - Number of emitted assembler fragments < 120588 assembler - Number of emitted object file bytes < 2233448 assembler - Number of evaluated fixups < 1727 assembler - Number of relaxed instructions < 6723845 mcexpr - Number of MCExpr evaluations --- > 3 assembler - Number of assembler layout and relaxation steps > 7707 assembler - Number of emitted assembler fragments > 120588 assembler - Number of emitted object file bytes > 14796 assembler - Number of evaluated fixups > 1727 assembler - Number of relaxed instructions > 67889 mcexpr - Number of MCExpr evaluations -- Feel free to LOL at the -before numbers, if you like. I am a little surprised we make more than 2 relaxation passes. It's pretty trivial for us to do relaxation out-of-order if that would give a speedup. llvm-svn: 99543 | |||||
* | MC: Simplify main section layout process by moving alignment into LayoutSection. | Daniel Dunbar | 2010-03-25 | 1 | -30/+31 | |
| | | | | llvm-svn: 99529 | |||||
* | MC: Sink Section address assignment into LayoutSection. | Daniel Dunbar | 2010-03-25 | 1 | -6/+6 | |
| | | | | llvm-svn: 99528 | |||||
* | MC: Explicity track section and fragment ordinals. | Daniel Dunbar | 2010-03-25 | 1 | -0/+13 | |
| | | | | llvm-svn: 99500 |