| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
already lives.
llvm-svn: 203046
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before llvm-mc would print it, but llc was assuming that it would produce
another section changing directive before one was needed. That assumption is
false with inline asm.
Fixes PR19049.
Another option would be to always create the section, but in the asm printer
avoid printing sections changes during initialization. That would work, but
* We do use the fact that llvm-mc prints it in testing. The tests can be changed
if needed.
* A quick poll on IRC suggest that most developers prefer the implicit .text to
be printed.
llvm-svn: 203001
|
| |
|
|
| |
llvm-svn: 202811
|
| |
|
|
|
|
|
|
|
|
| |
scan the register file for sub- and super-registers.
No functionality change intended.
(Tests are updated because the comments in the assembler output are
different.)
llvm-svn: 202416
|
| |
|
|
| |
llvm-svn: 202317
|
| |
|
|
|
|
| |
more obvious.
llvm-svn: 202313
|
| |
|
|
|
|
|
|
|
|
| |
TargetLoweringBase is implemented in CodeGen, so before this patch we had
a dependency fom Target to CodeGen. This would show up as a link failure of
llvm-stress when building with -DBUILD_SHARED_LIBS=ON.
This fixes pr18900.
llvm-svn: 201711
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
r201608 made llvm corretly handle private globals with MachO. r201622 fixed
a bug in it and r201624 and r201625 were changes for using private linkage,
assuming that llvm would do the right thing.
They all got reverted because r201608 introduced a crash in LTO. This patch
includes a fix for that. The issue was that TargetLoweringObjectFile now has
to be initialized before we can mangle names of private globals. This is
trivially true during the normal codegen pipeline (the asm printer does it),
but LTO has to do it manually.
llvm-svn: 201700
|
| |
|
|
|
|
|
| |
This causes the LLVMgold plugin to segfault. More information on the
replies to r201608.
llvm-svn: 201669
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The IR
@foo = private constant i32 42
is valid, but before this patch we would produce an invalid MachO from it. It
was invalid because it would use an L label in a section where the liker needs
the labels in order to atomize it.
One way of fixing it would be to just reject this IR in the backend, but that
would not be very front end friendly.
What this patch does is use an 'l' prefix in sections that we know the linker
requires symbols for atomizing them. This allows frontends to just use
private and not worry about which sections they go to or how the linker handles
them.
One small issue with this strategy is that now a symbol name depends on the
section, which is not available before codegen. This is not a problem in
practice. The reason is that it only happens with private linkage, which will
be ignored by the non codegen users (llvm-nm and llvm-ar).
llvm-svn: 201608
|
| |
|
|
|
|
|
|
| |
for ARM/Thumb functions.
Patch by Keith Walker!
llvm-svn: 201423
|
| |
|
|
|
|
| |
rdar://problem/16015314
llvm-svn: 201253
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Debug info: Emit values in subregisters that do not have a separate
DWARF register number by emitting a super-register + DW_OP_bit_piece.
This is necessary because on x86_64, there are no DWARF register numbers
for i386-style subregisters.
Fixes a bunch of FIXMEs.
rdar://problem/16015314
llvm-svn: 201190
|
| |
|
|
|
|
| |
This reverts commit r201179 for buildbot breakage.
llvm-svn: 201188
|
| |
|
|
| |
llvm-svn: 201181
|
| |
|
|
|
|
|
|
|
|
|
| |
DWARF register number by emitting a super-register + DW_OP_bit_piece.
This is necessary because on x86_64, there are no DWARF register numbers
for i386-style subregisters.
Fixes a bunch of FIXMEs.
rdar://problem/16015314
llvm-svn: 201180
|
| |
|
|
|
|
|
|
|
| |
These methods normally call each other and it is really annoying if the
arguments are in different order. The more common rule was that the arguments
specific to call are first (GV, Encoding, Suffix) and the auxiliary objects
(Mang, TM) come after. This patch changes the exceptions.
llvm-svn: 201044
|
| |
|
|
|
|
|
| |
It is never null and it is not used in casts, so there is no reason to use a
pointer. This matches how we pass TM.
llvm-svn: 201025
|
| |
|
|
|
|
| |
Thanks to John McCall for noticing it.
llvm-svn: 200977
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 200976
|
| |
|
|
|
|
| |
Clang itself was not using this. The only way to access it was via llc.
llvm-svn: 200862
|
| |
|
|
| |
llvm-svn: 200781
|
| |
|
|
|
|
| |
The code path it was guarding was already using emitRawComment.
llvm-svn: 200591
|
| |
|
|
|
|
|
|
| |
triple'
This incorporates a couple of fixes reviewed at http://llvm-reviews.chandlerc.com/D2651
llvm-svn: 200440
|
| |
|
|
|
|
|
|
| |
triple."
It was incompatible with --target=i686-win32.
llvm-svn: 200375
|
| |
|
|
| |
llvm-svn: 200345
|
| |
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D2232
llvm-svn: 200340
|
| |
|
|
| |
llvm-svn: 199971
|
| |
|
|
| |
llvm-svn: 199397
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
relocations
MSVC on x64 requires that we create image relative symbol
references to refer to RTTI data. Seeing as how there is no way to
explicitly make reference to a given relocation type in LLVM IR, pattern
match expressions of the form &foo - &__ImageBase.
Differential Revision: http://llvm-reviews.chandlerc.com/D2523
llvm-svn: 199312
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Representing dllexport/dllimport as distinct linkage types prevents using
these attributes on templates and inline functions.
Instead of introducing further mixed linkage types to include linkonce and
weak ODR, the old import/export linkage types are replaced with a new
separate visibility-like specifier:
define available_externally dllimport void @f() {}
@Var = dllexport global i32 1, align 4
Linkage for dllexported globals and functions is now equal to their linkage
without dllexport. Imported globals and functions must be either
declarations with external linkage, or definitions with
AvailableExternallyLinkage.
llvm-svn: 199218
|
| |
|
|
|
|
|
|
| |
Revert this for now until I fix an issue in Clang with it.
This reverts commit r199204.
llvm-svn: 199207
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Representing dllexport/dllimport as distinct linkage types prevents using
these attributes on templates and inline functions.
Instead of introducing further mixed linkage types to include linkonce and
weak ODR, the old import/export linkage types are replaced with a new
separate visibility-like specifier:
define available_externally dllimport void @f() {}
@Var = dllexport global i32 1, align 4
Linkage for dllexported globals and functions is now equal to their linkage
without dllexport. Imported globals and functions must be either
declarations with external linkage, or definitions with
AvailableExternallyLinkage.
llvm-svn: 199204
|
| |
|
|
|
|
|
|
|
|
| |
Targets like SPARC and MIPS have delay slots and normally bundle the
delay slot instruction with the corresponding terminator.
Teach isBlockOnlyReachableByFallthrough to find any MBB operands on
bundled terminators so SPARC doesn't need to specialize this function.
llvm-svn: 199061
|
| |
|
|
|
|
|
|
|
|
|
|
| |
operand into the Value interface just like the core print method is.
That gives a more conistent organization to the IR printing interfaces
-- they are all attached to the IR objects themselves. Also, update all
the users.
This removes the 'Writer.h' header which contained only a single function
declaration.
llvm-svn: 198836
|
| |
|
|
|
|
| |
This makes it available to tools that don't link with target (like llvm-ar).
llvm-svn: 198708
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
are part of the core IR library in order to support dumping and other
basic functionality.
Rename the 'Assembly' include directory to 'AsmParser' to match the
library name and the only functionality left their -- printing has been
in the core IR library for quite some time.
Update all of the #includes to match.
All of this started because I wanted to have the layering in good shape
before I started adding support for printing LLVM IR using the new pass
infrastructure, and commandline support for the new pass infrastructure.
llvm-svn: 198688
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch any program that wanted to know the final symbol name of a
GlobalValue had to link with Target.
This patch implements a compromise solution where the mangler uses DataLayout.
This way, any tool that already links with Target (llc, clang) gets the exact
behavior as before and new IR files can be mangled without linking with Target.
With this patch the mangler is constructed with just a DataLayout and DataLayout
is extended to include the information the Mangler needs.
llvm-svn: 198438
|
| |
|
|
|
|
|
| |
just calling into MAI and is only abstracting for a single interface that
we actually need to check in multiple places.
llvm-svn: 198092
|
| |
|
|
| |
llvm-svn: 197323
|
| |
|
|
|
|
|
|
| |
The linkers on these systems don't have anything special to do with these
symbols. Since the intent is for them to be absent from the final object,
just treat them as private.
llvm-svn: 197080
|
| |
|
|
|
|
| |
.weak_def_can_be_hidden was not yet supported by the system assembler
llvm-svn: 196970
|
| |
|
|
| |
llvm-svn: 196427
|
| |
|
|
| |
llvm-svn: 196426
|
| |
|
|
|
|
| |
Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter
llvm-svn: 196288
|
| |
|
|
|
|
| |
It broke CodeGen/R600 tests with +Asserts.
llvm-svn: 196272
|
| |
|
|
| |
llvm-svn: 196270
|
| |
|
|
| |
llvm-svn: 196168
|
| |
|
|
|
|
| |
This allows it to be used in TargetLoweringObjectFileImpl.cpp.
llvm-svn: 196117
|
| |
|
|
| |
llvm-svn: 195931
|