| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
| |
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.
This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.
This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.
llvm-svn: 78142
|
| |
|
|
| |
llvm-svn: 77774
|
| |
|
|
| |
llvm-svn: 77769
|
| |
|
|
|
|
|
| |
as it is now a MachineFunctionPass, and MachineFunctionPass now handles
this.
llvm-svn: 77760
|
| |
|
|
|
|
| |
to the MachineFunction.
llvm-svn: 77753
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 76553
|
| |
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
| |
|
|
| |
llvm-svn: 75423
|
| |
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
| |
|
|
|
|
| |
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
|
| |
|
|
| |
llvm-svn: 75161
|
| |
|
|
| |
llvm-svn: 75153
|
| |
|
|
| |
llvm-svn: 75067
|
| |
|
|
|
|
|
|
|
|
|
| |
will allow simplifying LegalizeDAG to eliminate type legalization. (I
have a patch to do that, but it's not quite finished; I'll commit it
once it's finished and I've fixed any review comments for this patch.)
See the comment at the beginning of
lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp for more details on the
motivation for this patch.
llvm-svn: 72325
|
| |
|
|
|
|
| |
fixes dejagnu tests that use these options.
llvm-svn: 72094
|
| |
|
|
| |
llvm-svn: 71241
|
| |
|
|
|
|
|
| |
which better identifies what the optimization is doing. And is more flexible for
future uses.
llvm-svn: 70440
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'll change the JIT with a follow-up patch.
llvm-svn: 70343
|
| |
|
|
| |
llvm-svn: 70275
|
| |
|
|
|
|
|
|
|
|
|
| |
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'm not 100% sure if it's necessary to change it there...
llvm-svn: 70270
|
| |
|
|
|
|
| |
utility function.
llvm-svn: 69937
|
| |
|
|
|
|
| |
This code could use some refactoring help!
llvm-svn: 69254
|
| |
|
|
| |
llvm-svn: 69253
|
| |
|
|
| |
llvm-svn: 67881
|
| |
|
|
|
|
| |
operand index in the high bits.
llvm-svn: 67387
|
| |
|
|
|
|
| |
one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet.
llvm-svn: 66777
|
| |
|
|
|
|
|
|
|
|
| |
a DBG_LABEL or not. We want to fall back to the original way of emitting debug
info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
need to investigate still.
llvm-svn: 65367
|
| |
|
|
|
|
| |
"optimize-for-size" mode.
llvm-svn: 65064
|
| |
|
|
|
|
|
|
|
|
|
| |
instruction index across each part. Instruction indices are used
to make live range queries, and live ranges can extend beyond
scheduling region boundaries.
Refactor the ScheduleDAGSDNodes class some more so that it
doesn't have to worry about this additional information.
llvm-svn: 64288
|
| |
|
|
|
|
| |
No functional change.
llvm-svn: 64026
|
| |
|
|
|
|
| |
ScheduleDAG's TLI member to use const.
llvm-svn: 64018
|
| |
|
|
|
|
|
|
|
| |
SelectionDAGISel::CreateScheduler, and make it just create the
scheduler. Leave running the scheduler to the higher-level code.
This makes the higher-level code a little more explicit and
easier to follow, and will help enable some future refactoring.
llvm-svn: 63944
|
| |
|
|
|
|
|
| |
that previously included this header should include
SchedulerRegistry.h instead.
llvm-svn: 63937
|
| |
|
|
|
|
| |
I think that's it for this directory.
llvm-svn: 63690
|
| |
|
|
|
|
| |
Duncan spotted this. Thanks!
llvm-svn: 63641
|
| |
|
|
|
|
| |
initial PHI nodes of the machine function.
llvm-svn: 63598
|
| |
|
|
| |
llvm-svn: 63594
|
| |
|
|
|
|
|
| |
correct. We need more infrastructure before we can get the DebugLoc info for
these instructions.
llvm-svn: 63593
|
| |
|
|
| |
llvm-svn: 63198
|
| |
|
|
|
|
| |
sub-register indices as well.
llvm-svn: 62600
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
and every other instruction in their blocks to keep the terminator
instructions at the end, teach the post-RA scheduler how to operate
on ranges of instructions, and exclude terminators from the range
of instructions that get scheduled.
Also, exclude mid-block labels, such as EH_LABEL instructions, and
schedule code before them separately from code after them. This
fixes problems with the post-RA scheduler moving code past
EH_LABELs.
llvm-svn: 62366
|
| |
|
|
|
|
|
| |
to support MachineInstr-based scheduling in addition to
SDNode-based scheduling.
llvm-svn: 62284
|
| |
|
|
|
|
|
|
|
|
|
| |
and into the ScheduleDAGInstrs class, so that they don't get
destructed and re-constructed for each block. This fixes a
compile-time hot spot in the post-pass scheduler.
To help facilitate this, tidy and do some minor reorganization
in the scheduler constructor functions.
llvm-svn: 62275
|