Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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 | |||||
* | MC: Route access to SectionData offset and file size through MCAsmLayout. | Daniel Dunbar | 2010-03-25 | 1 | -10/+31 | |
| | | | | llvm-svn: 99474 | |||||
* | MC: Route access to Fragment offset and effective size through MCAsmLayout. | Daniel Dunbar | 2010-03-25 | 1 | -30/+54 | |
| | | | | llvm-svn: 99473 | |||||
* | MC: Eliminate MC{Fragment,{Section,Symbol}Data}::getAddress. | Daniel Dunbar | 2010-03-25 | 1 | -9/+7 | |
| | | | | llvm-svn: 99467 | |||||
* | MC: Direct all {fragment,section,symbol} address access through the ↵ | Daniel Dunbar | 2010-03-24 | 1 | -21/+49 | |
| | | | | | | MCAsmLayout object. llvm-svn: 99380 | |||||
* | MC: Sprinkle in some more interesting statistics. | Daniel Dunbar | 2010-03-23 | 1 | -1/+18 | |
| | | | | llvm-svn: 99350 | |||||
* | MC: Switch to using MCInst fragments to do relaxation. | Daniel Dunbar | 2010-03-23 | 1 | -78/+50 | |
| | | | | | | Also, both MCMachOStreamer and MCAssembler are now target independent! llvm-svn: 99256 | |||||
* | MC: Add TargetAsmBackend::MayNeedRelaxation, for checking whether a ↵ | Daniel Dunbar | 2010-03-23 | 1 | -1/+1 | |
| | | | | | | particular instruction + fixups might need relaxation. llvm-svn: 99249 | |||||
* | MC: Add TargetAsmBackend::WriteNopData and use to eliminate some target ↵ | Daniel Dunbar | 2010-03-23 | 1 | -62/+9 | |
| | | | | | | dependencies in MCMachOStreamer and MCAssembler. llvm-svn: 99248 | |||||
* | MC: Tweak MCInstFragment to include the encoded data and fixups, so that we ↵ | Daniel Dunbar | 2010-03-23 | 1 | -13/+5 | |
| | | | | | | don't need to recompute them during relaxation. I will revisit this once all the other pieces of fast relaxation are in place. llvm-svn: 99244 | |||||
* | MC: Add MCInstFragment, not used yet. | Daniel Dunbar | 2010-03-22 | 1 | -4/+80 | |
| | | | | llvm-svn: 99229 | |||||
* | MC: Fix a few more cases we were passing an MCDataFragment when a MCFragment ↵ | Daniel Dunbar | 2010-03-22 | 1 | -3/+4 | |
| | | | | | | would do, and sprinkle in some const. llvm-svn: 99218 | |||||
* | Simplify. | Daniel Dunbar | 2010-03-22 | 1 | -4/+2 | |
| | | | | llvm-svn: 99217 | |||||
* | MC: Change MCObjectWriter::RecordRelocation to take an MCFragment (instead ↵ | Daniel Dunbar | 2010-03-22 | 1 | -1/+1 | |
| | | | | | | of a MCDataFragment). Object files should only need the generic MCFragment features. llvm-svn: 99205 | |||||
* | MC: Eliminate MCFragment::getMaxFileSize. | Daniel Dunbar | 2010-03-22 | 1 | -2/+7 | |
| | | | | llvm-svn: 99203 | |||||
* | MC: Share the MCAsmLayout object, although its still not used for anything ↵ | Daniel Dunbar | 2010-03-22 | 1 | -15/+10 | |
| | | | | | | important. llvm-svn: 99202 | |||||
* | MC: Add TargetAsmBackend::createObjectWriter. | Daniel Dunbar | 2010-03-19 | 1 | -7/+7 | |
| | | | | | | - MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF. llvm-svn: 98955 | |||||
* | MCCodeEmitter: Add target independent fixup flag for is-pc-relative. | Daniel Dunbar | 2010-03-19 | 1 | -12/+4 | |
| | | | | llvm-svn: 98954 | |||||
* | MC: Sink code emitter into MCAssembler. | Daniel Dunbar | 2010-03-19 | 1 | -2/+3 | |
| | | | | llvm-svn: 98953 | |||||
* | MC/Mach-O: Move to MachObjectWriter.{h,cpp}. | Daniel Dunbar | 2010-03-19 | 1 | -820/+1 | |
| | | | | llvm-svn: 98952 | |||||
* | MC: Add TargetAsmBackend::isVirtualSection hook. | Daniel Dunbar | 2010-03-19 | 1 | -15/+7 | |
| | | | | llvm-svn: 98950 | |||||
* | MC: Split MCObjectWriter out of MCAssembler.cpp. | Daniel Dunbar | 2010-03-19 | 1 | -131/+30 | |
| | | | | llvm-svn: 98949 | |||||
* | MCAssembler: Pull out MCObjectWriter class. | Daniel Dunbar | 2010-03-19 | 1 | -82/+126 | |
| | | | | llvm-svn: 98948 | |||||
* | MCAssembler: Move ApplyFixup to the TargetAsmBackend, this is a target ↵ | Daniel Dunbar | 2010-03-19 | 1 | -12/+1 | |
| | | | | | | specific not object writer specific task. llvm-svn: 98947 | |||||
* | MC/Mach-O: Lift the fixup evaluation and application up (to the same place), ↵ | Daniel Dunbar | 2010-03-19 | 1 | -35/+31 | |
| | | | | | | and eliminate MCAsmFixup::FixedValue. llvm-svn: 98944 | |||||
* | MC/Mach-O: Factor out ExecutePostLayoutBinding, to separate the post-layout ↵ | Daniel Dunbar | 2010-03-19 | 1 | -31/+33 | |
| | | | | | | changes the object writer may need to make to the assembler from the actual .o writing. llvm-svn: 98943 | |||||
* | MC/Mach-O: Lift relocation emission logic a bit higher to separate ↵ | Daniel Dunbar | 2010-03-19 | 1 | -56/+77 | |
| | | | | | | evaluation / relocation handling from the actual .o writing. llvm-svn: 98942 | |||||
* | MC/Mach-O: Add isScatteredFixupFullyResolved, which implements the correct ↵ | Daniel Dunbar | 2010-03-19 | 1 | -1/+59 | |
| | | | | | | | | algorithm (used on x86_64) for determining whether an evaluated fixup is fully resolved (doesn't need relocation). - Test cases will follow, once we have x86_64 relocation support. llvm-svn: 98926 | |||||
* | MC/Mach-O/x86_64: Add getAtom[ForAddress]. | Daniel Dunbar | 2010-03-19 | 1 | -0/+36 | |
| | | | | | | - These find the defining symbol which identifies the containing atom for a symbol or address. They are currently very slow, but will be eliminated eventually. llvm-svn: 98925 | |||||
* | MC/Mach-O: Factor out isScatteredFixupFullyResolvedSimple predicate, and fix ↵ | Daniel Dunbar | 2010-03-19 | 1 | -15/+52 | |
| | | | | | | some corner cases. llvm-svn: 98924 | |||||
* | MC/Mach-O: Factor out isSymbolLinkerVisible method; "linker visible" is a ↵ | Daniel Dunbar | 2010-03-19 | 1 | -10/+18 | |
| | | | | | | made up term to refer to non-temporary labels + temporary labels in sections-which-require symbols. For Darwin, it corresponds to symbols which effectively define an atom. llvm-svn: 98923 | |||||
* | MCValue: Change to holding MCSymbolRefExprs instead of MCSymbols, we will ↵ | Daniel Dunbar | 2010-03-18 | 1 | -14/+14 | |
| | | | | | | need this for accessing to symbol modifiers. llvm-svn: 98791 | |||||
* | MC/Mach-O/x86_64: Temporary labels in cstring sections require symbols (and ↵ | Daniel Dunbar | 2010-03-15 | 1 | -2/+8 | |
| | | | | | | external relocations, but we don't have x86_64 relocations yet). llvm-svn: 98583 | |||||
* | MC/Mach-O: Add MCSectionMachO::getType() | Daniel Dunbar | 2010-03-15 | 1 | -12/+5 | |
| | | | | llvm-svn: 98582 | |||||
* | MC/X86_64: Symbol support. | Daniel Dunbar | 2010-03-13 | 1 | -6/+10 | |
| | | | | llvm-svn: 98456 |