History log of /external/llvm/lib/Target/TargetLoweringObjectFile.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
25efd6d556718295a63d37f5294985746af354f6 14-Nov-2012 Anton Korobeynikov <asl@math.spbu.ru> Use TARGET2 relocation for TType references on ARM.
Do some cleanup of the code while here.

Inspired by patch by Logan Chien!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
3574eca1b02600bac4e625297f4ecf745f4c4f32 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f2eed387d48e36f12a9945c6b71b20bdc7f46e3a 05-May-2012 Eric Christopher <echristo@apple.com> Typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4e02f23de24375294005f88b5254a3775d39fcb2 27-Mar-2012 Craig Topper <craig.topper@gmail.com> Prune some includes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
7302d80490feabfc8a01bee0fa698aab55169544 06-Feb-2012 Chris Lattner <sabre@nondot.org> Remove some dead code and tidy things up now that vectors use ConstantDataVector
instead of always using ConstantVector.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
29cc6cb4d1aa22f0a27edf4e5b363071a83a65d8 24-Jan-2012 Chris Lattner <sabre@nondot.org> C++, CBE, and TLOF support for ConstantDataSequential


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
732f05c41f177a0bc4d47e93a5d02120f146cb4c 10-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Add 'llvm_unreachable' to passify GCC's understanding of the constraints
of several newly un-defaulted switches. This also helps optimizers
(including LLVM's) recognize that every case is covered, and we should
assume as much.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
2bd335470f8939782f3df7f6180282d3825d4f09 10-Jan-2012 David Blaikie <dblaikie@gmail.com> Remove unnecessary default cases in switches that cover all enum values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 02-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Move global variables in TargetMachine into new TargetOptions class. As an API
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.

One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc.

There is still a bit more refactoring left to do in Targets. But we are now very
close to fixing all the layering issues in MC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
e76a33b9567d78a5744dc52fcec3a6056d6fb576 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> Add MCObjectFileInfo and sink the MCSections initialization code from
TargetLoweringObjectFileImpl down to MCObjectFileInfo.

TargetAsmInfo is done to one last method. It's *almost* gone!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
9bc402c8d4b547ab644d39a37033c1e4ef67c3cd 13-Jul-2011 Evan Cheng <evan.cheng@apple.com> Fix up TargetLoweringObjectFile ctors to properly initialize fields.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4c0c446d7458ffcfbe108ea71f1915f387e150e7 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Use the presence of the __compact_unwind section to indicate that a target
supports compact unwind info instead of having a separate flag indicating this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
1a3ab63cb59d7f7726b47cdda3b9509e999d1653 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Add a flag that indicates whether a target supports compact unwind info or not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
aa0a8f317791b4de07a6c7a2b9705c4183052b54 23-Jun-2011 Bill Wendling <isanbard@gmail.com> Add a __LD,__compact_unwind section.

If the linker supports it, this will hold the CIE and FDE information in a
compact format. The implementation of the compact unwinding emission is coming
soon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
7d715dfe6d66be257926f626df96a0e2bd38dc1f 19-Jun-2011 Jay Foad <jay.foad@gmail.com> Fix a FIXME by making GlobalVariable::getInitializer() return a
const Constant *.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
087aad44cb37b361e8ed84f197138b366c764f9a 05-May-2011 Bill Wendling <isanbard@gmail.com> Remove a flag that would set the ".eh" symbol as .globl. MachO was the only one
who used this flag, and it now emits CFI and doesn't emit this anymore. All
other targets left this flag "false".
<rdar://problem/8486371>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
5426a9ee37667660935d80841c5392d78e254318 01-May-2011 Rafael Espindola <rafael.espindola@gmail.com> GCC uses a different encoding of pointers in the FDE when using
-fno-dwarf2-cfi-asm. Implement the same behavior.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
60246a96224c8b790177253bf25433b93b335d2b 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove unnecessary argument.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
7afec9cc0ff1654619d30b6f30e2a4d13369c8bf 28-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Rename getPersonalityPICSymbol to getCFIPersonalitySymbol, document it, and
give it a bit more responsibility. Also implement it for MachO.

If hacked to use cfi, 32 bit MachO will produce

.cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr

and 64 bit will produce

.cfi_presonality ___gxx_personality_v0

The general idea is that .cfi_personality gets passed the final symbol. It is
up to codegen to produce it if using indirect representation (like 32 bit
MachO), but it is up to MC to decide which relocations to create.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4788c3e839203dc75ba9fe2026f315095677715c 20-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove unused arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
6144686af6b62480c1a72b9f648c3823c6ed0dba 16-Apr-2011 Francois Pichet <pichet2000@gmail.com> MSVC needs the return 0 to compile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
30deafc84adf88f643cdc39dc97a37537155347f 16-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Put each personality function in a section. This fixes the gnu ld warning:

error in foo.o; no .eh_frame_hdr table will be created.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f0adba9a7ec8a3031876575a6ffb7db5f1b6f855 15-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Add 129518 back with a fix for when we are producing eh just because of debug info.
Change ELF systems to use CFI for producing the EH tables. This reduces the
size of the clang binary in Debug builds from 690MB to 679MB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
bcb8c6d09ee426e0f774e3412912f6ae9e5f78dd 15-Apr-2011 NAKAMURA Takumi <geek4civic@gmail.com> Revert r129518, "Change ELF systems to use CFI for producing the EH tables. This reduces the"

It broke several builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
3dae6e7333b8fae7b79ddb99757ab5de73890af9 14-Apr-2011 Rafael Espindola <rafael.espindola@gmail.com> Change ELF systems to use CFI for producing the EH tables. This reduces the
size of the clang binary in Debug builds from 690MB to 679MB.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
0cf5e3d51dd455a174a8f00cfa6b63c11e535434 23-Jan-2011 Rafael Espindola <rafael.espindola@gmail.com> Delay the creation of eh_frame so that the user can change the defaults.
Add support for SHT_X86_64_UNWIND.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
32899199c043269b4dfab7f0429cc946e67bd54d 18-Jan-2011 Chris Lattner <sabre@nondot.org> minor change to rafael's recent patches: if something is
constant but requires a unique address, we can still put it in a
readonly section, just not a mergable one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
7010401c6bdfb9895eba73af4fa7cb896f032ebe 16-Jan-2011 Rafael Espindola <rafael.espindola@gmail.com> Only put unnamed_addr constants in mergeable sections. Fixes PR8297.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8048ebe91d76f5ee58f5c2c7535151d782af4b29 27-Sep-2010 Chris Lattner <sabre@nondot.org> the latest assembler that runs on powerpc 10.4 machines doesn't
support aligned comm. Detect when compiling for 10.4 and don't
emit an alignment for comm. THis will hopefully fix PR8198.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
e368b460a206fafa0d31d5d059b1779b94f7df8c 18-Jun-2010 Dan Gohman <gohman@apple.com> Eliminate unnecessary uses of getZExtValue().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
75361b69f3f327842b9dad69fa7f28ae3b688412 08-Apr-2010 Chris Lattner <sabre@nondot.org> rename llvm::llvm_report_error -> llvm::report_fatal_error



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
77e76940269b1bed36bc31ee5139b5c90fd13836 17-Mar-2010 Chris Lattner <sabre@nondot.org> fix GetOrCreateTemporarySymbol to require a name, clients
should use CreateTempSymbol() if they don't care about the
name.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
73ff564d65e9c748562c5734d1f72a2a233f0275 12-Mar-2010 Chris Lattner <sabre@nondot.org> finally give Mangler a getSymbol method, which returns an MCSymbol
for a global instead of messing around with string buffers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f789d26f810243ffd6db79e15a6f10821d785308 12-Mar-2010 Chris Lattner <sabre@nondot.org> make TargetLoweringObjectFile::getExprForDwarfReference
just make unnamed temp symbols instead of having to come
up with its own names.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
42263e2e407ab7d1d805e7b41cffd7217134d3b6 11-Mar-2010 Chris Lattner <sabre@nondot.org> fix a fixme in TargetLoweringObjectFile::getExprForDwarfReference
where we used ot create an MCSymbol for ".". Now emit an assembler
temporary label and reference it instead of "." textually.

rdar://7739457


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
3192d14076dbe5724ce85b9d48644bb3c081f0e5 11-Mar-2010 Chris Lattner <sabre@nondot.org> rename getSymbolForDwarf* to getExprForDwarf* since it returns
an MCExpr and not an MCSymbol. Change it to take an MCStreamer,
which is currently unused.

No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
09d53fecfcc93377627b6ee7b4d92f8a6ff152e9 10-Mar-2010 Chris Lattner <sabre@nondot.org> move three lowering hooks from MAI to TLOF and make one of them
semantic instead of syntactic. This completes MCization of
darwin/x86[-64]!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
98cdab53c302a2d6686fa428c0e896b1fb195311 10-Mar-2010 Chris Lattner <sabre@nondot.org> set the temporary bit on MCSymbols correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
b76beda30a3630a9fd5fde10f43d27dd51fb5037 16-Feb-2010 Bill Wendling <isanbard@gmail.com> Make error statement more personal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
362dd0bef5437f85586c046bc53287b6fbe9c099 15-Feb-2010 Anton Korobeynikov <asl@math.spbu.ru> Move TLOF implementations to libCodegen to resolve layering violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
990a9fde39b7d9ff7af8beb51752c16f53c0b3d3 15-Feb-2010 Anton Korobeynikov <asl@math.spbu.ru> Add suffix for stubs, so we won't have name clashes with private symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
9184b25fa543a900463215c11635c2c014ddb623 15-Feb-2010 Anton Korobeynikov <asl@math.spbu.ru> Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
a46918d2b1b63aa3db94aa10b9ea70209b84e274 22-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Simplify some uses of str(n)cmp with StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
814819f6ea7fb0638fe73920299fda0da941a59e 19-Jan-2010 Chris Lattner <sabre@nondot.org> stop using the .lcomm pseudoop on darwin, instead, directly use the
.zerofill directive. Streamerize its generation.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
ce8749e445fdd0493758932874bad50293647df9 19-Jan-2010 Chris Lattner <sabre@nondot.org> make TLOF subclassify BSS based on linkage type into private, external
and everything else (weak).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
c7fbe903898ebf322cc375127bca85f4011cb266 19-Jan-2010 Chris Lattner <sabre@nondot.org> fix a significant difference between llvm and gcc on ELF systems:
GCC would put weak zero initialized mutable data in the .bss section,
we would put it into a crasy '.gnu.linkonce.b.test,"aw",@nobits'
section. Fixing this will allow simplifications next up.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
a3839bc3714e6a84222f45cf4c0f1a20a88b10cd 19-Jan-2010 Chris Lattner <sabre@nondot.org> introduce a section kind for common linkage. Use this to slightly
simplify and commonize some of the asmprinter logic for globals.

This also avoids printing the MCSection for .zerofill, which broke
the llvm-gcc build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
aac138e84dee1cb3ffc1035b2a1e4361fe0b4f80 19-Jan-2010 Chris Lattner <sabre@nondot.org> Cleanup handling of .zerofill on darwin:

1. TargetLoweringObjectFileMachO should decide if something
goes in zerofill instead of having every target do it.
2. TargetLoweringObjectFileMachO should assign said symbols to
the right MCSection, the asmprinters should just emit to the
right section.
3. Since all zerofill stuff goes through mcstreamer anymore,
MAI can have a bool "haszerofill" instead of having the textual
directive to emit.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
acd03ae6791fc0fb9f1b05247a1dc082b46b8d8b 17-Jan-2010 Chris Lattner <sabre@nondot.org> Get MCSymbol out of the mangling business, and move all the logic
to Mangler. Now MCSymbol just decides whether to slap quotes around
a symbol when printing it.

This also fixes some weirdness where two MCSymbols could be created
for the same symbol, if one needed to be mangled and got mangled to
the other one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
45111d160cf0910030eeb6a949c69273502e5ad5 16-Jan-2010 Chris Lattner <sabre@nondot.org> move the mangler into libtarget from vmcore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
036d8f9581c76b68cac08876be65b362c3a54bc3 16-Jan-2010 Chris Lattner <sabre@nondot.org> fix build failure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
0b3735e65af1cc3ff7fb76e2b30e2ffb2604f400 16-Jan-2010 Chris Lattner <sabre@nondot.org> remove a couple of actively incorrect uses of getMangledName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8da8d4b12a7e36e219894c256f545ddea66a9c49 13-Jan-2010 Chris Lattner <sabre@nondot.org> fix ELF section mangling stuff for weak symbols to not use
obsolete Mangler interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
cab16cc9a34b8a18e9f91c99085b2f0a1d287e12 13-Jan-2010 Chris Lattner <sabre@nondot.org> Use the GV version of getNameWithPrefix in TargetLoweringObjectFileCOFF::
SelectSectionForGlobal, unbreaking weak globals with no-name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4d5f06fbe55ef7dd1d7709407d7b963965c077cf 13-Jan-2010 Chris Lattner <sabre@nondot.org> add a fixme, ELF MCSection isn't quite right and weak unnamed globals are broken
on linux (even though they are pointless, they shouldn't ICE).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
ee9250bb4f88364511cfda9ae95ad787bff1a72c 13-Jan-2010 Chris Lattner <sabre@nondot.org> eliminate some uses of Mangler::makeNameProper.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4813035b726e7f0a3fd17bec437185fc72a50988 13-Jan-2010 Chris Lattner <sabre@nondot.org> change Mangler::makeNameProper to return its result in a SmallVector
instead of returning it in an std::string. Based on this change:

1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
prefixes, not use temporary std::strings, and to avoid other crimes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
a07b7504050e10508144b294b2c7996fe8794e0c 07-Jan-2010 Eric Christopher <echristo@apple.com> We need to put any kind of data with a relocation into a
not-readonly segment on darwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
fb7634f1c7a804829fc55e3711ba62c8ade818d0 19-Nov-2009 Bill Wendling <isanbard@gmail.com> Reverting the EH table patches.

$ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r89279 into '.':
U lib/CodeGen/AsmPrinter/DwarfException.cpp
U lib/Target/TargetLoweringObjectFile.cpp
$ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r89270 into '.':
G lib/CodeGen/AsmPrinter/DwarfException.cpp
G lib/Target/TargetLoweringObjectFile.cpp



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
01c69374b508bad0ee71cd3c49414a325238e29a 19-Nov-2009 Bill Wendling <isanbard@gmail.com> The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EH
exception table than DataRel.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
ec0445855179d2c9fb98a2c8a42e03525762f45f 19-Nov-2009 Bill Wendling <isanbard@gmail.com> Attempt #2:

Place the EH table in the __TEXT section on MachO. It saves space.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8f9b0f6e881a63875e7c41319eca31751588799a 07-Nov-2009 Chris Lattner <sabre@nondot.org> add some missing #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
2928c83b010f7cfdb0f819199d806f6942a7d995 06-Nov-2009 Daniel Dunbar <daniel@zuster.org> Pass StringRef by value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
711bb91574db242ba34a86caea719819b0ecef43 20-Sep-2009 Bill Wendling <isanbard@gmail.com> --- Reverse-merging r82282 into '.':
U lib/CodeGen/AsmPrinter/DwarfException.cpp
U lib/CodeGen/AsmPrinter/DwarfException.h

--- Reverse-merging r82274 into '.':
U lib/Target/TargetLoweringObjectFile.cpp
G lib/CodeGen/AsmPrinter/DwarfException.cpp

These revisions were breaking everything.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8d5a831bfad4ec72b15c2cb6f6e894a1bd6e726a 20-Sep-2009 Bill Wendling <isanbard@gmail.com> Still one more thing wrong here...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
5511ffd763c6de8264de7bdf318564fee2bbfc99 20-Sep-2009 Bill Wendling <isanbard@gmail.com> Here's fun! It turns out that these filter functions can be internal. If they're
internal, they shouldn't use the indirect pointer stuff. In the case of
throw_rethrow_test, it was marked as 'internal' and calculated its own offset to
its contents.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
68a77ab5d22ecfa31ca6d7d1b1161c1be261df2a 20-Sep-2009 Bill Wendling <isanbard@gmail.com> Revert r82274. It's causing failures in the CINT2006 benchmarks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
296ab7e5445f0402d0aae3814c38f964d6f547fb 18-Sep-2009 Bill Wendling <isanbard@gmail.com> It's inefficient to have place the exception tables (which contain the LSDA)
into the __DATA section. At launch time, dyld has to update most of the section
to fix up the type info pointers. It's better to place it into the __TEXT
section and use pc-rel indirect pointer encodings. Similar to the personality
routine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8609c7c931c0213d6d29f665df2110cf3c709e4c 17-Sep-2009 Chris Lattner <sabre@nondot.org> pass machinemoduleinfo down into getSymbolForDwarfGlobalReference,
currently unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8c6ed05157e9c97ff8f3ccb211dd797e53228da1 16-Sep-2009 Chris Lattner <sabre@nondot.org> Big change #1 for personality function references:
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding
fields from MAI: they aren't part of the asm syntax, they are
related to the structure of the object file.

To replace their functionality, add a new
TLOF::getSymbolForDwarfGlobalReference method which asks targets
to decide how to reference a global from EH in a pc-relative way.

The default implementation just returns the symbol. The default
darwin implementation references the symbol through an indirect
$non_lazy_ptr stub. The bizarro x86-64 darwin specialization
handles the weird "foo@GOTPCREL+4" hack.

DwarfException.cpp now uses this to emit the reference to the
symbol in the right way, and this also eliminates another
horrible hack from DwarfException.cpp:

- if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL"))
- O << "-" << MAI->getPCSymbol();



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4c0b349253d6de7054fd38fe8492fb32a19f21b6 09-Sep-2009 Anton Korobeynikov <asl@math.spbu.ru> Provide proper section flags for various BSS flavours

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8ddb569d8a1831f0e061e2f490d61bccd4166ec4 09-Sep-2009 Anton Korobeynikov <asl@math.spbu.ru> Whitespace cleanup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
16df208d4eff8414cf4294f9953caabffed1386b 27-Aug-2009 Daniel Dunbar <daniel@zuster.org> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
35c3531754c392a533921a465a22f67f7e8fb743 18-Aug-2009 Chris Lattner <sabre@nondot.org> fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sections


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
848c29396271b8255653b6c6b61b5482bd72c293 18-Aug-2009 Anton Korobeynikov <asl@math.spbu.ru> Text sections should have 'exec' flag set. This seems to unbreak libstdc++ on linux.
Patch by Dmitry Gorbachev!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
76d5ccf6afd5ae253cf3d5c2cf6acc712643d8cb 17-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Clear the uniquing table when initializing TLOF to avoid a crash when the TLOF is reinitialized with a different MCContext.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
2a5e23b44ddf1efde1d98bd3379489d93a90d55a 17-Aug-2009 Richard Osborne <richard@xmos.com> Update getSectionForConstant() to to allow mergable sections to be nulled out
if not supported by the ELF subtarget.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
b6ab29940de8ead5b5612ae5414adc4d11e0b2e7 15-Aug-2009 Chris Lattner <sabre@nondot.org> the .eh_frame sections we generate need to be writable (which
is why they are datarel). This should fix PR4724, and is fallout
from r78890.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
203b3e9e2a61be88e8d36a58c5615712e34c6a47 15-Aug-2009 Chris Lattner <sabre@nondot.org> If ELF subtargets don't want to support 4/8/16-byte mergable sections, allow
them to null out the default section pointers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
fa9ca0f788e96fe1eab506817b23d47eed1a3d36 14-Aug-2009 Dan Gohman <gohman@apple.com> Make these matching rules more strict so that they don't
accidentally match unrelated things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
fdf229eda95a542fc34d5182e1a91a22789ba122 14-Aug-2009 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Remove HasCrazyBSS and add a flag in TAI to indicate that '.section'
must be emitted for PowerPC-Linux '.bss' section


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
b808588a3a5febe931896b3779d159ba90d836f7 13-Aug-2009 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Change MCSectionELF to represent a section semantically instead of
syntactically as a string, very similiar to what Chris did with MachO.
The parsing support and validation is not introduced yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
38cff389af1d78bd80df0479ef258493e0c5897e 13-Aug-2009 Chris Lattner <sabre@nondot.org> sink uniquing of sections out of MCContext into the ELF and PECOFF TLOF implementations.

MCContext no longer maintains a string -> section map.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
c9d31524eec562f719d6818508b722b55a787d67 13-Aug-2009 Chris Lattner <sabre@nondot.org> add some comments: MCContext owns the MCSections, but it bump pointer allocates
them, so it doesn't have to explicitly free them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
e309cfa0d8945af47dd798357549c815164d53d6 13-Aug-2009 Chris Lattner <sabre@nondot.org> reject invalid code like:
int x __attribute__((section("_foo, _bar"))) = 4;
int y __attribute__((section("_foo, _bar, 4byte_literals"))) = 1;




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
5dc47ff03975b9adde9dd833db2b646eb4295710 13-Aug-2009 Chris Lattner <sabre@nondot.org> implement support for uniquing MachO sections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
d3c4486f46226fb328ceb16d55927472fb3e0f6d 13-Aug-2009 Chris Lattner <sabre@nondot.org> reduce #includage


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
ffef8acc3e3398bdd04e947c7949befdd52faf86 11-Aug-2009 Dan Gohman <gohman@apple.com> Tidy #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f9bdeddb96043559c61f176f8077e3b91a0c544f 10-Aug-2009 Chris Lattner <sabre@nondot.org> split MachO section handling stuff out to its out .h/.cpp file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
ff4bc460c52c1f285d8a56da173641bf92d49e3f 10-Aug-2009 Chris Lattner <sabre@nondot.org> Make the big switch: Change MCSectionMachO to represent a section *semantically*
instead of syntactically as a string. This means that it keeps track of the
segment, section, flags, etc directly and asmprints them in the right format.
This also includes parsing and validation support for llvm-mc and
"attribute(section)", so we should now start getting errors about invalid
section attributes from the compiler instead of the assembler on darwin.

Still todo:
1) Uniquing of darwin mcsections
2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h]
3) there are a few FIXMEs, for example what is the syntax to get the
S_GB_ZEROFILL segment type?



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
892e18239308f8a02a4c83758616be84a459c19d 09-Aug-2009 Chris Lattner <sabre@nondot.org> 1. Make MCSection an abstract class.
2. Move section switch printing to MCSection virtual method which takes a
TAI. This eliminates textual formatting stuff from TLOF.
3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and
TLOFELF::AtIsCommentChar.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
7c599d056a41262681aa7fcd771eeed53a8e0bd2 08-Aug-2009 Chris Lattner <sabre@nondot.org> make target-specific TLOF impls (except PIC16) create target-specific
MCSection instances.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
5277b22687d3513dd29d5a9c8510cac740f933f6 08-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate TargetLoweringObjectFileSparc in favor of a TAI hook.
A TAI hook is appropriate in this case because this is just an
asm syntax issue, not a semantic difference. TLOF should model
the semantics of the section.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
0c0cb7123346beab4e0d3ad6ce9570560b14971e 08-Aug-2009 Chris Lattner <sabre@nondot.org> now that getOrCreateSection is all object-file specific,
give the impls an object-file-specific name. In the future
they can take different arguments etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
fbf1d271e6a7157c1b5432e84d5633f63869b5a8 08-Aug-2009 Chris Lattner <sabre@nondot.org> sink getOrCreateSection down into all the object file implementations,
now that they create *all* the sections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
24f654c8a4d14066233480f683d3b0dececf374a 06-Aug-2009 Chris Lattner <sabre@nondot.org> Fix several fixmes and clean up code by sinking *all* section
creation activity into the target-specific subclasses of TLOF.
Before this, globals with explicit sections could be created by
the base class.

1. make getOrCreateSection protected, add a new getExplicitSectionGlobal
pure virtual method to assign sections to globals with a specified
section.
2. eliminate getSpecialCasedSectionGlobals, which is now PIC specific.
3. eliminate the getKindForNamedSection virtual method, which is
now just a static method for ELF.
4. Add implementions of getExplicitSectionGlobal for ELF/PECOFF/Darwin/PIC16.
They are now all detangled and understandable, woo! :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
58bed8fc29b6e55e7014dcb537808043c946cd73 05-Aug-2009 Chris Lattner <sabre@nondot.org> expose SectionKindForGlobal to curious clients, named as
getKindForGlobal.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
ec409759e94cc395e4896ba6ade3fa77200c5cfd 04-Aug-2009 Chris Lattner <sabre@nondot.org> enhance codegen to put 16-bit character strings into the
__TEXT,__ustring section on darwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
7e88a50428377813606c66ac47111d9c3ea44feb 04-Aug-2009 Chris Lattner <sabre@nondot.org> fix a fixme: don't create an explicit "CStringSection" for ELF,
it is just being used as a prefix, so forward substitute it directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
1850e5add1516e945bbabf7e456c305f4bd5cc6f 04-Aug-2009 Chris Lattner <sabre@nondot.org> Add support emiting for 2/4 byte mergable strings to the ".rodata.str*"
section on ELF targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
3b24c0172069a2546cd095e4b91f8b88c1ea0722 04-Aug-2009 Chris Lattner <sabre@nondot.org> make MergeableCString be a SectionKind "abstract class", and
add new concrete versions for 1/2/4-byte mergable strings.

These are not actually created yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
11e9657eeb76dff6baaab1cbac0b1fb7e1abb439 03-Aug-2009 Chris Lattner <sabre@nondot.org> Eliminate textual section switching from the x86 backend, one
more step towards "semantics sections"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
18a4c16726db2b8874c7b84d04650dda80746074 02-Aug-2009 Chris Lattner <sabre@nondot.org> move dwarf debug info section selection stuff from TAI to
TLOF, unifying all the dwarf targets at the same time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
35039ac24163e99cfab161620a9fb41f944a63d5 02-Aug-2009 Chris Lattner <sabre@nondot.org> convert EHFrameSection to be managed by TLOF instead of TAI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
d5bbb07ec806e6fa1e804afd7073987fdacc83e4 02-Aug-2009 Chris Lattner <sabre@nondot.org> move getDwarfExceptionSection from TAI to TLOF and rename it to
getLSDASection() to be more specific. This makes it pretty obvious
that the ELF LSDA section is being specified wrong in PIC mode. We're
probably getting a lot of startup-time relocations to a readonly page,
which is expensive and bad.

Someone who cares about ELF C++ should investigate this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
80ec2792b2b271eca55743a3cc4c8bca214fa705 02-Aug-2009 Chris Lattner <sabre@nondot.org> convert ctors/dtors section to be in TLOF instead of
TAI.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
2798119ab4d7e0b42812b3acdf37821f40dee627 02-Aug-2009 Chris Lattner <sabre@nondot.org> (re)introduce new simpler apis for creation sectionkinds.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
83d77faf6e8fc2c1c2377d037283dc162d8667a1 02-Aug-2009 Chris Lattner <sabre@nondot.org> Remove "JumpTableDataSection" from TAI, instead, have AsmPrinter
compute it based on what it knows. As part of this, rename getSectionForMergeableConstant
to getSectionForConstant because it works for non-mergable constants also.

The only functionality change from this is that Xcore will start dropping
its jump tables into readonly section instead of data section in -static mode.
This should be fine as the linker resolves the relocations. If this is a
problem, let me know and we'll come up with another solution.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
824583844a8f334dd261894a3fac7ad476531667 01-Aug-2009 Chris Lattner <sabre@nondot.org> fix a fixme by sinking various target-specific directives down into
the appropriate subclasses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
94dab1e57a435198bf30c9992805a7d101d5c6c6 01-Aug-2009 Chris Lattner <sabre@nondot.org> coff also doesn't have a ReadOnlySection yet, (!)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
56fe93c5d3734693897da59363d1aaaac1fd7d33 01-Aug-2009 Chris Lattner <sabre@nondot.org> coff doesn't set a .bss seciton, so this is dead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f9650c061ee89ac55740555530ca5c2842c28738 01-Aug-2009 Chris Lattner <sabre@nondot.org> it turns out that isWeak() was basically dead anyway. Kill off SectionInfo :-/


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
27602b82c2a12b9f99c1f7fcbfb4be5ba97dbd7d 01-Aug-2009 Chris Lattner <sabre@nondot.org> don't use isWeak anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
968ff1196768c0b6dbcc5508025a2923bfa73fab 01-Aug-2009 Chris Lattner <sabre@nondot.org> Change SectionKind to be a property that is true of a *section*, it
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4a7bc1e5aafbb543a9a535bce54fc62d18723b35 01-Aug-2009 Chris Lattner <sabre@nondot.org> All MCSections are now required to have a SectionKind.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
26630c1180502d07c9b2b4a9a4ba06bc5ddf180b 31-Jul-2009 Chris Lattner <sabre@nondot.org> move emitUsedDirectiveFor to TargetLoweringObjectFile and rename it to
indicate that it is a predicate, not an emitter. This eliminates TAI
dependencies on Mangler and GlobalValue.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
a87dea4f8c546ca748f1777a8d1cabcc06515d91 31-Jul-2009 Chris Lattner <sabre@nondot.org> switch off of 'Section' onto MCSection. We're not properly using
MCSection subclasses yet, but this is a step in the right direction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f26e03bc7e30162197641406e37e662a15d80f7e 31-Jul-2009 Chris Lattner <sabre@nondot.org> refactor section construction in TLOF to be through an explicit
initialize method, which can be called when an MCContext is available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
82987bfe9b6ae85a8836c9f2d2e9f0ef9866edb1 31-Jul-2009 Chris Lattner <sabre@nondot.org> fix PR4650: we only track sizes for certain objects, so only put something
into the mergable section if it is one of our special cases. This could
obviously be improved, but this is the minimal fix and restores us to the
previous behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
83d1c3db39dcde56b706b15d6684bc60fda4d276 29-Jul-2009 Chris Lattner <sabre@nondot.org> mingw uses .data and .text, not _data and _text.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
b8f396bdbb06b585b480ada31ec8c2ab35916a55 29-Jul-2009 Chris Lattner <sabre@nondot.org> fix PR4584 with a trivial patch now that the pieces are in place.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
e53a600f065075731d0aeb9dc8f4f3d75f5a05f8 29-Jul-2009 Chris Lattner <sabre@nondot.org> pass the mangler down into the various SectionForGlobal methods.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
a679207d5852760c9809157eb67d2609cc3c268a 29-Jul-2009 Chris Lattner <sabre@nondot.org> constant prop a utostr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
067fe1ae5488764afb8d8fdafba65899dc221887 29-Jul-2009 Chris Lattner <sabre@nondot.org> remove some completely wrong code. 1 is never < 16. It turns out that GCC appears to put strings of any length into the ELF cstring equivalent, so just rip out the code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
bf15e433b9ac6692e76aff0465cd93bb87f68989 28-Jul-2009 Chris Lattner <sabre@nondot.org> Fix PR4639, a ELF-TLS regression from some of my refactoring.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
4bb253c60f895131371aa2ad1bfa5a2bea213f78 28-Jul-2009 Chris Lattner <sabre@nondot.org> the apple "ld_classic" linker doesn't support .literal16 in 32-bit
mode, and "ld64" (the default linker) falls back to it in -static
mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
8fb0039ea6d41ffef7ed5c8c2b97603eb07ad67c 28-Jul-2009 Chris Lattner <sabre@nondot.org> fix unused variable warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp
f0144127b98425d214e59e4a1a4b342b78e3642b 28-Jul-2009 Chris Lattner <sabre@nondot.org> Rip all of the global variable lowering logic out of TargetAsmInfo. Since
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.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/TargetLoweringObjectFile.cpp