| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
| |
|
|
| |
llvm-svn: 77009
|
| |
|
|
|
|
| |
LiveInterval, etc to raw_ostream.
llvm-svn: 76965
|
| |
|
|
| |
llvm-svn: 76962
|
| |
|
|
|
|
|
|
| |
functions with a single use; eliminating the single use may eliminate
the function from the current module, but usually doesn't eliminate
it from the final program.
llvm-svn: 76730
|
| |
|
|
| |
llvm-svn: 76702
|
| |
|
|
| |
llvm-svn: 76595
|
| |
|
|
| |
llvm-svn: 76324
|
| |
|
|
|
|
|
| |
which cannot be folded even if they have constant operands. Significantly
helps if_spppsubr.c attached to PR4573.
llvm-svn: 76285
|
| |
|
|
| |
llvm-svn: 76184
|
| |
|
|
|
|
|
|
|
|
| |
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.
llvm-svn: 76150
|
| |
|
|
|
|
|
|
| |
number of issues in
our current context-passing stuff, which is also fixed here
llvm-svn: 76089
|
| |
|
|
|
|
| |
AllocaInst and MallocInst.
llvm-svn: 75863
|
| |
|
|
|
|
| |
and use this to simplify more code.
llvm-svn: 75722
|
| |
|
|
| |
llvm-svn: 75703
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
function.
llvm-svn: 75584
|
| |
|
|
| |
llvm-svn: 75497
|
| |
|
|
|
|
|
|
|
| |
Constants.cpp and ConstantFold.cpp.
This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.
llvm-svn: 75445
|
| |
|
|
| |
llvm-svn: 75393
|
| |
|
|
|
|
|
|
|
| |
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: 75255
|
| |
|
|
|
|
| |
the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
| |
|
|
|
|
| |
we're inserting sigma/phi functions for. Patch by Andre Tavares.
llvm-svn: 75138
|
| |
|
|
|
|
| |
Add an -ssi-everything pass which calls createSSI on everything in the function.
llvm-svn: 75135
|
| |
|
|
|
|
| |
module is required.
llvm-svn: 75025
|
| |
|
|
| |
llvm-svn: 74985
|
| |
|
|
| |
llvm-svn: 74878
|
| |
|
|
|
|
| |
files.
llvm-svn: 74844
|
| |
|
|
| |
llvm-svn: 74807
|
| |
|
|
| |
llvm-svn: 74782
|
| |
|
|
|
|
|
| |
Use it by requiring it through the pass manager, then calling its createSSI
method on the variables that you want in SSI form.
llvm-svn: 74780
|
| |
|
|
|
|
|
|
|
|
| |
LLVMContext through a lot
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
llvm-svn: 74614
|
| |
|
|
|
|
|
|
| |
arguments/elements
to not have to create a temporary vector (in the API at least). Patch by Jay Foad!
llvm-svn: 74584
|
| |
|
|
| |
llvm-svn: 74491
|
| |
|
|
|
|
|
| |
LoopInfo will handle removing it from the Loop, as well as updating
its own tables.
llvm-svn: 74398
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when one of them can be converted to a trivial icmp and conditional
branch.
This addresses what is essentially a phase ordering problem.
SimplifyCFG knows how to do this transformation, but it doesn't do so
if the primary block has any instructions in it other than an icmp and
a branch. In the given testcase, the block contains other instructions,
however they are loop-invariant and can be hoisted. SimplifyCFG doesn't
have LoopInfo though, so it can't hoist them. And, it's important that
the blocks be merged before LoopRotation, as it doesn't support
multiple-exit loops.
llvm-svn: 74396
|
| |
|
|
| |
llvm-svn: 74351
|
| |
|
|
| |
llvm-svn: 74285
|
| |
|
|
|
|
|
| |
an invoke instruction, since the value isn't really live across that
edge.
llvm-svn: 74242
|
| |
|
|
|
|
|
| |
to ignore readonly calls, and factor it out of instcombine so
that it can be used by other passes. Patch by Frits van Bommel!
llvm-svn: 73506
|
| |
|
|
|
|
|
|
| |
problem addressed in 31284, but the patch there only
addressed the case where an invoke is the first thing in
a block.
llvm-svn: 73416
|
| |
|
|
| |
llvm-svn: 73362
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.
For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.
This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt
llvm-svn: 72897
|
| |
|
|
| |
llvm-svn: 72610
|
| |
|
|
|
|
|
|
|
| |
and it wasn't generating calls through @PLT for these functions.
hasLocalLinkage() is now false for available_externally,
I attempted to fix the inliner and dce to handle available_externally properly.
It passed make check.
llvm-svn: 72328
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instructions. It attempts to create high-level multi-operand GEPs,
though in cases where this isn't possible it falls back to casting
the pointer to i8* and emitting a GEP with that. Using GEP instructions
instead of ptrtoint+arithmetic+inttoptr helps pointer analyses that
don't use ScalarEvolution, such as BasicAliasAnalysis.
Also, make the AddrModeMatcher more aggressive in handling GEPs.
Previously it assumed that operand 0 of a GEP would require a register
in almost all cases. It now does extra checking and can do more
matching if operand 0 of the GEP is foldable. This fixes a problem
that was exposed by SCEVExpander using GEPs.
llvm-svn: 72093
|
| |
|
|
|
|
| |
adding another copy.
llvm-svn: 71783
|
| |
|
|
| |
llvm-svn: 71717
|