| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 78917
|
|
|
|
| |
llvm-svn: 78848
|
|
|
|
|
|
|
|
| |
pair instead of from a virtual method on TargetMachine. This cuts the final
ties of TargetAsmInfo to TargetMachine, meaning that MC can now use
TargetAsmInfo.
llvm-svn: 78802
|
|
|
|
| |
llvm-svn: 78571
|
|
|
|
|
|
|
|
| |
classes.
This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-)
llvm-svn: 78517
|
|
|
|
| |
llvm-svn: 78382
|
|
|
|
|
|
| |
creating them directly in the pic16 asmprinter.
llvm-svn: 78317
|
|
|
|
|
|
| |
variables either.
llvm-svn: 77844
|
|
|
|
|
|
| |
declaration will end up in.
llvm-svn: 77843
|
|
|
|
| |
llvm-svn: 77835
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
should have no state that is specific to particular globals in the
section. In this case, it means the removal of the "isWeak" and
"ExplicitSection" bits. MCSection uses the new form of SectionKind.
To handle isWeak, I introduced a new SectionInfo class, which is
SectionKind + isWeak, and it is used by the part of the code generator
that does classification of a specific global.
The ExplicitSection disappears. It is moved onto MCSection as a new
"IsDirective" bit. Since the Name of a section is either a section
or directive, it makes sense to keep this bit in MCSection. Ultimately
the creator of MCSection should canonicalize (e.g.) .text to whatever
the actual section is.
llvm-svn: 77803
|
|
|
|
|
|
| |
MCSection subclasses yet, but this is a step in the right direction.
llvm-svn: 77708
|
|
|
|
|
|
| |
declaration for them.
llvm-svn: 77578
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 77432
|
|
|
|
| |
llvm-svn: 77295
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it is highly specific to the object file that will be generated in the end,
this introduces a new TargetLoweringObjectFile interface that is implemented
for each of ELF/MachO/COFF/Alpha/PIC16 and XCore.
Though still is still a brutal and ugly refactoring, this is a major step
towards goodness.
This patch also:
1. fixes a bunch of dangling pointer problems in the PIC16 backend.
2. disables the TargetLowering copy ctor which PIC16 was accidentally using.
3. gets us closer to xcore having its own crazy target section flags and
pic16 not having to shadow sections with its own objects.
4. fixes wierdness where ELF targets would set CStringSection but not
CStringSection_. Factor the code better.
5. fixes some bugs in string lowering on ELF targets.
llvm-svn: 77294
|
|
|
|
|
|
| |
Some libcall names are same, so they were getting printed twice.
llvm-svn: 77215
|
|
|
|
|
|
|
|
| |
getOrCreateSection
instead.
llvm-svn: 77186
|
|
|
|
|
|
| |
instead and drive things based off of that.
llvm-svn: 77184
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Spell SectionFlags::Writeable as "Writable".
2. Add predicates for deriving SectionFlags from SectionKinds.
3. Sink ELF-specific getSectionPrefixForUniqueGlobal impl into
ELFTargetAsmInfo.
4. Fix SectionFlagsForGlobal to know that BSS/ThreadBSS has the
BSS bit set (the real fix for PR4619).
5. Fix isSuitableForBSS to not put globals with explicit sections
set in BSS (which was the reason #4 wasn't fixed earlier).
6. Remove my previous hack for PR4619.
llvm-svn: 77085
|
|
|
|
|
|
| |
- Less boilerplate == good.
llvm-svn: 77052
|
|
|
|
| |
llvm-svn: 76842
|
|
|
|
|
|
|
| |
and call PrintGlobalVariable, allowing elimination and simplification
of various targets.
llvm-svn: 76604
|
|
|
|
|
|
| |
vectors needlessly, doxygenify comments, improve constness, etc.
llvm-svn: 76585
|
|
|
|
|
|
| |
as much, etc.
llvm-svn: 76578
|
|
|
|
|
|
| |
- Switch to standard addAssemblyEmitter logic.
llvm-svn: 75854
|
|
|
|
|
|
| |
dynamic_cast<>.
llvm-svn: 75670
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
additional bug fixes:
1. The bug that everyone hit was a problem in the asmprinter where it
would remove $stub but keep the L prefix on a name when emitting the
indirect symbol. This is easy to fix by keeping the name of the stub
and the name of the symbol in a StringMap instead of just keeping a
StringSet and trying to reconstruct it late.
2. There was a problem printing the personality function. The current
logic to print out the personality function from the DWARF information
is a bit of a cesspool right now that duplicates a bunch of other
logic in the asm printer. The short version of it is that it depends
on emitting both the L and _ prefix for symbols (at least on darwin)
and until I can untangle it, it is best to switch the mangler back to
emitting both prefixes.
llvm-svn: 75646
|
|
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r75615 into '.':
U lib/Target/XCore/XCoreAsmPrinter.cpp
U lib/Target/PIC16/PIC16AsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
U lib/Target/MSP430/MSP430AsmPrinter.cpp
U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
U lib/Target/MSIL/MSILWriter.cpp
U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
llvm-svn: 75637
|
|
|
|
| |
llvm-svn: 75615
|
|
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
|
|
|
| |
llvm-svn: 74838
|
|
|
|
|
|
|
|
|
|
|
| |
the part.
Implement _section macro to allow users to place objects in specific sections.
Implement _address macro to allow users to place objects at a particular address.
Placing objects at a memory address:
crate a unique section name from varname, address, object type and put that section at specified address. Mark this section a full (size = banksize) so that other objects do not compete for it while placing objects to sections in AsmPrinter.
llvm-svn: 74822
|
|
|
|
|
|
|
| |
- This more or less amounts to a revert of r65379. I'm curious to know what
happened that caused this variable to become unused.
llvm-svn: 74579
|
|
|
|
| |
llvm-svn: 73481
|
|
|
|
|
|
|
|
|
| |
static functions with same name), so pick up the compilation unit for the function from the first valid debug loc of its instructions.
This patch also emits debug info for structure (aggregate types in
general) types.
llvm-svn: 73295
|
|
|
|
| |
llvm-svn: 73185
|
|
|
|
| |
llvm-svn: 73184
|
|
|
|
|
|
| |
entierly by estimating its side effects on globals, those globals(autos) without a function were not being printed by the Asm printer.
llvm-svn: 73135
|
|
|
|
|
|
| |
after linking in several .bc files.
llvm-svn: 72781
|
|
|
|
| |
llvm-svn: 72531
|
|
|
|
|
|
| |
well because on PIC16 they are emitted as globals by the frontend).
llvm-svn: 72262
|
|
|
|
|
|
| |
includeing declarations. Later emit them from their section lists.
llvm-svn: 71661
|
|
|
|
|
|
|
| |
Later in asmprinter, go over thsese sections and print them.
Do not print empty sections.
llvm-svn: 71560
|
|
|
|
|
|
| |
just emit a comment for readability.
llvm-svn: 71544
|
|
|
|
|
|
|
| |
compiler libcalls start with .lib. now.
fixed section names.
llvm-svn: 71424
|
|
|
|
|
|
|
|
|
|
|
| |
only for those. These extern declarations to intrinsics are currently
being emitted at the bottom of generated .s file, which works fine with
gpasm(not sure about MPSAM though).
PIC16 linker generates errors for few cases (function-args/struct_args_5) if you do not include any
extern declarations (even if no intrinsics are being used), but that
needs to be fixed in the linker itself.
llvm-svn: 71423
|
|
|
|
|
|
| |
to emit and global declarations for them. This was working earlier and was broken during one of the recent commit for PIC16 naming.
llvm-svn: 71394
|
|
|
|
| |
llvm-svn: 71386
|