| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
Proof-of-concept code that code-gens a module to an in-memory MachO object.
This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld
for similarly conceptual work for that part) which will take the compiled
object and link it together with the rest of the system, providing back to the
JIT a table of available symbols which will be used to respond to the
getPointerTo*() queries.
llvm-svn: 127916
|
|
|
|
|
|
| |
mode".
llvm-svn: 127099
|
|
|
|
| |
llvm-svn: 126671
|
|
|
|
| |
llvm-svn: 124077
|
|
|
|
|
|
| |
description emission. Currently all the backends use table-based stuff.
llvm-svn: 123476
|
|
|
|
|
|
|
|
| |
createMachineVerifierPass and MachineFunction::verify.
The banner is printed before the machine code dump, just like the printer pass.
llvm-svn: 122113
|
|
|
|
|
|
| |
- Treaty talks on the non-proliferation of MC objects broke down.
llvm-svn: 121949
|
|
|
|
| |
llvm-svn: 121471
|
|
|
|
| |
llvm-svn: 121461
|
|
|
|
|
|
|
|
|
|
|
| |
f:
.cfi_startproc
nop
.cfi_endproc
assembled (on ELF).
llvm-svn: 121434
|
|
|
|
|
|
|
|
|
|
|
|
| |
MCStreamer instead of just MCObjectStreamer. Address changes cannot
be as efficient as we have to use DW_LNE_set_addres, but at least
most of the logic is shared.
This will be used so that, with CodeGen still using EmitDwarfLocDirective,
llvm-gcc is able to produce debug_line sections without needing an
assembler that supports .loc.
llvm-svn: 119777
|
|
|
|
| |
llvm-svn: 119717
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and xor. The 32-bit move immediates can be hoisted out of loops by machine
LICM but the isel hacks were preventing them.
Instead, let peephole optimization pass recognize registers that are defined by
immediates and the ARM target hook will fold the immediates in.
Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ
instructions if there are multiple uses. This happens when the 'and' is live
out, machine sink would have sinked the computation and that ends up pessimizing
code. The peephole pass would recognize situations where the 'and' can be
toggled to define CPSR and eliminate the comparison anyway.
2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking
important optimizations.
rdar://8663787, rdar://8241368
llvm-svn: 119548
|
|
|
|
|
|
|
| |
easier to debug, and to avoid complications when the CFG changes
in the middle of the instruction selection process.
llvm-svn: 119382
|
|
|
|
| |
llvm-svn: 118394
|
|
|
|
|
|
| |
is currently inert by default.
llvm-svn: 116732
|
|
|
|
|
|
|
|
|
|
|
|
| |
does normal initialization and normal chaining. Change the default
AliasAnalysis implementation to NoAlias.
Update StandardCompileOpts.h and friends to explicitly request
BasicAliasAnalysis.
Update tests to explicitly request -basicaa.
llvm-svn: 116720
|
|
|
|
|
|
| |
are easier to diff with those produced by llvm-mc.
llvm-svn: 116095
|
|
|
|
|
|
|
|
| |
any more. I plan to reimplement alloca promotion using SSAUpdater later.
It looks like Bill's URoR logic really always needs domtree, so the pass
now always asks for domtree info.
llvm-svn: 112597
|
|
|
|
|
|
|
| |
For now it's still a command line option, but the interface to the generic
code doesn't need to know that.
llvm-svn: 111942
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
experimental pass that allocates locals relative to one another before
register allocation and then assigns them to actual stack slots as a block
later in PEI. This will eventually allow targets with limited index offset
range to allocate additional base registers (not just FP and SP) to
more efficiently reference locals, as well as handle situations where
locals cannot be referenced via SP or FP at all (dynamic stack realignment
together with variable sized objects, for example). It's currently
incomplete and almost certainly buggy. Work in progress.
Disabled by default and gated via the -enable-local-stack-alloc command
line option.
rdar://8277890
llvm-svn: 111059
|
|
|
|
| |
llvm-svn: 111019
|
|
|
|
|
|
|
| |
pass. This pass should expand with all of the small, fine-grained optimization
passes to reduce compile time and increase happiment.
llvm-svn: 110627
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This pass tries to remove comparison instructions when possible. For instance,
if you have this code:
sub r1, 1
cmp r1, 0
bz L1
and "sub" either sets the same flag as the "cmp" instruction or could be
converted to set the same flag, then we can eliminate the "cmp" instruction all
together. This is a important for ARM where the ALU instructions could set the
CPSR flag, but need a special suffix ('s') to do so.
llvm-svn: 110423
|
|
|
|
|
|
|
|
|
|
| |
be killed before being redefined.
These checks are usually disabled, and usually fail when enabled. We de facto
allow live registers to be redefined without a kill, the corresponding
assertions in RegScavenger were removed long ago.
llvm-svn: 110362
|
|
|
|
|
|
| |
because it could create such things. This fixes a MingW buildbot test failure.
llvm-svn: 110279
|
|
|
|
| |
llvm-svn: 110248
|
|
|
|
|
|
| |
ownership of the TargetAsmBackend and the MCCodeEmitter.
llvm-svn: 109767
|
|
|
|
| |
llvm-svn: 109354
|
|
|
|
|
|
| |
Patch by Olivier Meurant!
llvm-svn: 109080
|
|
|
|
|
|
|
|
|
| |
- Check getBytesToPopOnReturn().
- Eschew ST0 and ST1 for return values.
- Fix the PIC base register initialization so that it doesn't ever
fail to end up the top of the entry block.
llvm-svn: 108039
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
U utils/TableGen/FastISelEmitter.cpp
--- Reverse-merging r107943 into '.':
U test/CodeGen/X86/fast-isel.ll
U test/CodeGen/X86/fast-isel-loads.ll
U include/llvm/Target/TargetLowering.h
U include/llvm/Support/PassNameParser.h
U include/llvm/CodeGen/FunctionLoweringInfo.h
U include/llvm/CodeGen/CallingConvLower.h
U include/llvm/CodeGen/FastISel.h
U include/llvm/CodeGen/SelectionDAGISel.h
U lib/CodeGen/LLVMTargetMachine.cpp
U lib/CodeGen/CallingConvLower.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
U lib/CodeGen/SelectionDAG/FastISel.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
U lib/CodeGen/SelectionDAG/InstrEmitter.cpp
U lib/CodeGen/SelectionDAG/TargetLowering.cpp
U lib/Target/XCore/XCoreISelLowering.cpp
U lib/Target/XCore/XCoreISelLowering.h
U lib/Target/X86/X86ISelLowering.cpp
U lib/Target/X86/X86FastISel.cpp
U lib/Target/X86/X86ISelLowering.h
llvm-svn: 107987
|
|
|
|
|
|
| |
a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL.
llvm-svn: 107943
|
|
|
|
|
|
| |
Debug info intrinsics win for now.
llvm-svn: 107850
|
|
|
|
|
|
| |
a separate DCE pass over MachineInstrs.
llvm-svn: 107804
|
|
|
|
| |
llvm-svn: 107393
|
|
|
|
| |
llvm-svn: 107381
|
|
|
|
| |
llvm-svn: 106809
|
|
|
|
|
|
|
|
|
| |
optimization level.
This only really affects llc for now because both the llvm-gcc and clang front
ends override the default register allocator. I intend to remove that code later.
llvm-svn: 104904
|
|
|
|
|
|
| |
-filetype=obj.
llvm-svn: 104747
|
|
|
|
| |
llvm-svn: 104463
|
|
|
|
| |
llvm-svn: 104029
|
|
|
|
|
|
|
| |
-filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we
need to sort out the ownership model for the various MC objects.
llvm-svn: 103769
|
|
|
|
|
|
| |
than just getting one through a TargetLowering.
llvm-svn: 101802
|
|
|
|
| |
llvm-svn: 101622
|
|
|
|
| |
llvm-svn: 101023
|
|
|
|
|
|
| |
It is not ready for public yet.
llvm-svn: 100673
|
|
|
|
| |
llvm-svn: 100640
|
|
|
|
| |
llvm-svn: 100592
|
|
|
|
|
|
|
|
|
|
| |
"asm printering" happens through MCStreamer. This also
Streamerizes PIC16 debug info, which escaped my attention.
This removes a leak from LLVMTargetMachine of the 'legacy'
output stream.
llvm-svn: 100327
|