| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
are inside the function by the target at the point of use.
llvm-svn: 98255
|
|
|
|
| |
llvm-svn: 98124
|
|
|
|
|
|
| |
Also, FileCheck'ize a test.
llvm-svn: 96686
|
|
|
|
| |
llvm-svn: 95781
|
|
|
|
| |
llvm-svn: 94673
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr
llvm-svn: 94523
|
|
|
|
|
|
|
|
| |
MachineFunctionAnalysis dole them out, instead of having
AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction
method set the 'AsmPrinter::MF' variable.
llvm-svn: 94509
|
|
|
|
|
|
| |
jump table entries.
llvm-svn: 94505
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 93864
|
|
|
|
| |
llvm-svn: 93630
|
|
|
|
| |
llvm-svn: 92544
|
|
|
|
|
|
| |
Patch by Howard Hinnant!
llvm-svn: 90365
|
|
|
|
| |
llvm-svn: 90134
|
|
|
|
| |
llvm-svn: 90133
|
|
|
|
|
|
|
| |
merges, and until then, it's useful to keep the tables separate for ease
of manipulation.
llvm-svn: 88806
|
|
|
|
| |
llvm-svn: 88804
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slots. The AsmPrinter will use this information to determine whether to
print a spill/reload comment.
Remove default argument values. It's too easy to pass a wrong argument
value when multiple arguments have default values. Make everything
explicit to trap bugs early.
Update all targets to adhere to the new interfaces..
llvm-svn: 87022
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Be consistent when referring to MachineBasicBlocks: BB#0.
- Be consistent when referring to virtual registers: %reg1024.
- Be consistent when referring to unknown physical registers: %physreg10.
- Be consistent when referring to known physical registers: %RAX
- Be consistent when referring to register 0: %reg0
- Be consistent when printing alignments: align=16
- Print jump table contents.
- Don't print host addresses, in general.
- and various other cleanups.
llvm-svn: 85682
|
|
|
|
| |
llvm-svn: 85653
|
|
|
|
|
|
| |
if they have compatible encodings.
llvm-svn: 85359
|
|
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
|
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|
|
|
|
|
|
| |
information when unfolding memory references.
llvm-svn: 83656
|
|
|
|
| |
llvm-svn: 83181
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
created by isel and live for the remainder of codegen, avoiding a lot of
copying and unnecessary translation. This also shrinks MemSDNode.
- Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
fields for MachineMemOperands.
- Change MemSDNode to have a MachineMemOperand member instead of its own
fields with the same information. This introduces some redundancy, but
it's more consistent with what MachineInstr will eventually want.
- Ignore alignment when searching for redundant loads for CSE, but remember
the greatest alignment.
Target-specific code which previously used MemOperandSDNodes with generic
SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
so that the SelectionDAG framework knows that MachineMemOperand information
is available.
llvm-svn: 82794
|
|
|
|
|
|
|
| |
move MachineFunctionInfo virtual method out of line to give it
a home.
llvm-svn: 81940
|
|
|
|
|
|
| |
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
|
|
|
|
| |
llvm-svn: 80073
|
|
|
|
|
|
|
|
| |
llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977
|
|
|
|
|
|
| |
- The world needs better C++ refactoring tools, can I get an Amen!?
llvm-svn: 79843
|
|
|
|
|
|
| |
upgrading a few things to use raw_ostream
llvm-svn: 79811
|
|
|
|
| |
llvm-svn: 79803
|
|
|
|
| |
llvm-svn: 79796
|
|
|
|
| |
llvm-svn: 79480
|
|
|
|
| |
llvm-svn: 79272
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
| |
llvm-svn: 78911
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and short. Well, it's kinda short. Definitely nasty and brutish.
The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.
Built on Darwin and verified no llvm-core "make check" regressions.
llvm-svn: 78625
|
|
|
|
|
|
| |
and others.
llvm-svn: 78003
|
|
|
|
| |
llvm-svn: 77931
|
|
|
|
| |
llvm-svn: 77704
|
|
|
|
|
|
|
|
| |
shouldn't do AU.setPreservesCFG(), because even though CodeGen passes
don't modify the LLVM IR CFG, they may modify the MachineFunction CFG,
and passes like MachineLoop are registered with isCFGOnly set to true.
llvm-svn: 77691
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
failures when building assorted projects with clang.
--- Reverse-merging r77654 into '.':
U include/llvm/CodeGen/Passes.h
U include/llvm/CodeGen/MachineFunctionPass.h
U include/llvm/CodeGen/MachineFunction.h
U include/llvm/CodeGen/LazyLiveness.h
U include/llvm/CodeGen/SelectionDAGISel.h
D include/llvm/CodeGen/MachineFunctionAnalysis.h
U include/llvm/Function.h
U lib/Target/CellSPU/SPUISelDAGToDAG.cpp
U lib/Target/PowerPC/PPCISelDAGToDAG.cpp
U lib/CodeGen/LLVMTargetMachine.cpp
U lib/CodeGen/MachineVerifier.cpp
U lib/CodeGen/MachineFunction.cpp
U lib/CodeGen/PrologEpilogInserter.cpp
U lib/CodeGen/MachineLoopInfo.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
D lib/CodeGen/MachineFunctionAnalysis.cpp
D lib/CodeGen/MachineFunctionPass.cpp
U lib/CodeGen/LiveVariables.cpp
llvm-svn: 77661
|
|
|
|
|
|
|
| |
mechanism. To support this, make MachineFunctionPass a little more
complete.
llvm-svn: 77654
|
|
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
|
|
|
| |
llvm-svn: 76962
|
|
|
|
|
|
|
|
|
| |
Constant::getRelocationInfo(), which has a much simpler
to use API. It still should not be part of libvmcore, but
is better than it was. Also teach it to be smart about
hidden visibility.
llvm-svn: 76700
|
|
|
|
| |
llvm-svn: 76679
|