| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Overload it in the ARM backend to do nothing, since is does insane
constant pool emission.
llvm-svn: 94708
|
| |
|
|
| |
llvm-svn: 94706
|
| |
|
|
| |
llvm-svn: 94703
|
| |
|
|
|
|
| |
MachineFunction::Alignment instead.
llvm-svn: 94701
|
| |
|
|
|
|
| |
is now less than 200 LOC!
llvm-svn: 94699
|
| |
|
|
| |
llvm-svn: 94698
|
| |
|
|
|
|
| |
per document.
llvm-svn: 94693
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.
Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.
Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
llvm-svn: 94686
|
| |
|
|
|
|
|
| |
which allows targets to override function entry label emission.
Use it to convert linux/ppc to use EmitFunctionHeader().
llvm-svn: 94667
|
| |
|
|
|
|
|
|
|
| |
even when -tailcallopt is not specified and it does not require changing ABI.
First case is the most trivial one. Perform tail call optimization when both
the caller and callee do not return values and when the callee does not take
any input arguments.
llvm-svn: 94664
|
| |
|
|
|
|
| |
This should fix a bunch of linux buildbot failures.
llvm-svn: 94643
|
| |
|
|
|
|
| |
a new set of them.
llvm-svn: 94631
|
| |
|
|
|
|
|
|
| |
EmitFunctionHeader:
7 files changed, 16 insertions(+), 210 deletions(-)
llvm-svn: 94630
|
| |
|
|
| |
llvm-svn: 94628
|
| |
|
|
| |
llvm-svn: 94627
|
| |
|
|
|
|
|
|
|
| |
Target independent isel should always pass along the "tail call" property. Change
target hook LowerCall's parameter "isTailCall" into a refernce. If the target
decides it's impossible to honor the tail call request, it should set isTailCall
to false to make target independent isel happy.
llvm-svn: 94626
|
| |
|
|
| |
llvm-svn: 94625
|
| |
|
|
| |
llvm-svn: 94617
|
| |
|
|
|
|
|
| |
logic up from X86 into the common code. The other targets will
hopefully start using this soon.
llvm-svn: 94614
|
| |
|
|
| |
llvm-svn: 94612
|
| |
|
|
| |
llvm-svn: 94610
|
| |
|
|
| |
llvm-svn: 94601
|
| |
|
|
|
|
|
|
|
|
|
| |
Default HasSetDirective to true, since most targets have it.
The targets that claim to not have it probably do, or it is
spelled differently. These include Blackfin, Mips, Alpha, and
PIC16. All of these except pic16 are normal ELF targets, so
they almost certainly have it.
llvm-svn: 94585
|
| |
|
|
| |
llvm-svn: 94583
|
| |
|
|
|
|
| |
Original patch by Sandeep Patel and updated by me.
llvm-svn: 94582
|
| |
|
|
|
|
| |
that has it.
llvm-svn: 94581
|
| |
|
|
| |
llvm-svn: 94580
|
| |
|
|
| |
llvm-svn: 94570
|
| |
|
|
| |
llvm-svn: 94560
|
| |
|
|
| |
llvm-svn: 94558
|
| |
|
|
|
|
|
| |
subsumed by TargetLowering::getJumpTableEncoding(). Change uses of
it to be more specific.
llvm-svn: 94529
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which is more convenient, and change getPICJumpTableRelocBaseExpr
to take a MachineFunction to match.
Next, move the X86 code that create a PICBase symbol to
X86TargetLowering::getPICBaseSymbol from
X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific
library. This eliminates a 'gross hack', and allows us to
implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now
calls it.
This in turn allows us to eliminate the
X86AsmPrinter::printPICJumpTableSetLabel method, which was the
only overload of printPICJumpTableSetLabel.
llvm-svn: 94526
|
| |
|
|
|
|
|
| |
EK_LabelDifference32 kind and the target has .set support. Simplify
X86AsmPrinter::printPICJumpTableSetLabel to make use of recent helpers.
llvm-svn: 94518
|
| |
|
|
|
|
|
|
|
|
|
| |
jump table entry kind, instead of overloading
AsmPrinter::printPICJumpTableEntry.
This has a pretty horrible and inefficient FIXME around how @GOTOFF
is currently smashed into the mcsymbol name, but otherwise this is
much cleaner.
llvm-svn: 94516
|
| |
|
|
|
|
| |
the AsmPrinter::GetMBBSymbol.
llvm-svn: 94515
|
| |
|
|
|
|
|
| |
AsmPrinter::SetupMachineFunction sets it. Note that systemz
and msp430 didn't. Yay for reduced inconsistency! :)
llvm-svn: 94510
|
| |
|
|
|
|
|
|
| |
MachineFunctionAnalysis dole them out, instead of having
AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction
method set the 'AsmPrinter::MF' variable.
llvm-svn: 94509
|
| |
|
|
| |
llvm-svn: 94502
|
| |
|
|
| |
llvm-svn: 94490
|
| |
|
|
| |
llvm-svn: 94489
|
| |
|
|
|
|
| |
TargetAsmLexer.
llvm-svn: 94482
|
| |
|
|
|
|
|
| |
dbg.declare's we currently generate go through both
register allocators without perturbing the results.
llvm-svn: 94480
|
| |
|
|
| |
llvm-svn: 94479
|
| |
|
|
| |
llvm-svn: 94477
|
| |
|
|
| |
llvm-svn: 94475
|
| |
|
|
|
|
| |
entries with @GOTOFF whih is EK_GPRel32BlockAddress.
llvm-svn: 94474
|
| |
|
|
| |
llvm-svn: 94472
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. MachineJumpTableInfo is now created lazily for a function the first time
it actually makes a jump table instead of for every function.
2. The encoding of jump table entries is now described by the
MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the
TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
throughout the compiler that "knows" that jump table entries are always
32-bits in pic mode (for example).
3. The size and alignment of jump table entries is now calculated based on
their kind, instead of at machinefunction creation time.
Future work includes using the EntryKind in more places in the compiler,
eliminating other logic that "knows" the layout of jump tables in various
situations.
llvm-svn: 94470
|
| |
|
|
|
|
|
| |
a null pointer for functions with no jump tables. No functionality
change.
llvm-svn: 94469
|
| |
|
|
|
|
|
| |
when we don't have one laying around. Useful if you don't
have an llvmcontext handy.
llvm-svn: 94468
|