| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
This allows us to keep passing reduced masks to SimplifyDemandedBits, but
know about all the bits if SimplifyDemandedBits fails. This allows instcombine
to simplify cases like the one in the included testcase.
llvm-svn: 154011
|
| |
|
|
| |
llvm-svn: 153502
|
| |
|
|
| |
llvm-svn: 153500
|
| |
|
|
| |
llvm-svn: 153245
|
| |
|
|
|
|
| |
some superfluous forward declarations.
llvm-svn: 152997
|
| |
|
|
| |
llvm-svn: 152544
|
| |
|
|
|
|
| |
specific backends.
llvm-svn: 152537
|
| |
|
|
|
|
| |
size of static data.
llvm-svn: 151996
|
| |
|
|
|
|
| |
direct call.
llvm-svn: 151645
|
| |
|
|
|
|
| |
prediction. ...", it is breaking the Clang build during the Compiler-RT part.
llvm-svn: 151630
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the processor keeps a return addresses stack (RAS) which stores the address
and the instruction execution state of the instruction after a function-call
type branch instruction.
Calling a "noreturn" function with normal call instructions (e.g. bl) can
corrupt RAS and causes 100% return misprediction so LLVM should use a
unconditional branch instead. i.e.
mov lr, pc
b _foo
The "mov lr, pc" is issued in order to get proper backtrace.
rdar://8979299
llvm-svn: 151623
|
| |
|
|
|
|
| |
MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878
|
| |
|
|
| |
llvm-svn: 150228
|
| |
|
|
| |
llvm-svn: 149961
|
| |
|
|
| |
llvm-svn: 149814
|
| |
|
|
|
|
|
|
|
|
| |
Passes prior to instructon selection are now split into separate configurable stages.
Header dependencies are simplified.
The bulk of this diff is simply removal of the silly DisableVerify flags.
Sorry for the target header churn. Attempting to stabilize them.
llvm-svn: 149754
|
| |
|
|
|
|
|
|
|
|
|
| |
Allows command line overrides to be centralized in LLVMTargetMachine.cpp.
LLVMTargetMachine can intercept common passes and give precedence to command line overrides.
Allows adding "internal" target configuration options without touching TargetOptions.
Encapsulates the PassManager.
Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs.
Allows modifying the target configuration hooks without rebuilding the world.
llvm-svn: 149672
|
| |
|
|
| |
llvm-svn: 148578
|
| |
|
|
|
|
| |
is discouraged now.
llvm-svn: 147738
|
| |
|
|
|
|
| |
likely to stay either way that discussion ends up resolving itself.
llvm-svn: 146966
|
| |
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146960
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
undefined result. This adds new ISD nodes for the new semantics,
selecting them when the LLVM intrinsic indicates that the undef behavior
is desired. The new nodes expand trivially to the old nodes, so targets
don't actually need to do anything to support these new nodes besides
indicating that they should be expanded. I've done this for all the
operand types that I could figure out for all the targets. Owners of
various targets, please review and let me know if any of these are
incorrect.
Note that the expand behavior is *conservatively correct*, and exactly
matches LLVM's current behavior with these operations. Ideally this
patch will not change behavior in any way. For example the regtest suite
finds the exact same instruction sequences coming out of the code
generator. That's why there are no new tests here -- all of this is
being exercised by the existing test suite.
Thanks to Duncan Sands for reviewing the various bits of this patch and
helping me get the wrinkles ironed out with expanding for each target.
Also thanks to Chris for clarifying through all the discussions that
this is indeed the approach he was looking for. That said, there are
likely still rough spots. Further review much appreciated.
llvm-svn: 146466
|
| |
|
|
|
|
|
|
|
|
|
| |
subdirectories to traverse into.
- Originally I wanted to avoid this and just autoscan, but this has one key
flaw in that new subdirectories can not automatically trigger a rerun of the
llvm-build tool. This is particularly a pain when switching back and forth
between trees where one has added a subdirectory, as the dependencies will
tend to be wrong. This will also eliminates FIXME implicitly.
llvm-svn: 146436
|
| |
|
|
| |
llvm-svn: 146409
|
| |
|
|
|
|
|
|
|
|
|
|
| |
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.
One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.
llvm-svn: 145714
|
| |
|
|
| |
llvm-svn: 145420
|
| |
|
|
|
|
|
| |
and code model. This eliminates the need to pass OptLevel flag all over the
place and makes it possible for any codegen pass to use this information.
llvm-svn: 144788
|
| |
|
|
| |
llvm-svn: 144631
|
| |
|
|
|
|
|
|
| |
versions of explicit dependencies.
- The hope is that we have a tool/test to verify these are accurate (and tight) soon.
llvm-svn: 144444
|
| |
|
|
|
|
| |
printer, assembly parser, or disassembler.
llvm-svn: 144344
|
| |
|
|
|
|
|
|
|
|
| |
handle defining the "magic" target related components (like native,
nativecodegen, and engine).
- We still require these components to be in the project (currently in
lib/Target) so that we have a place to document them and hopefully make it
more obvious that they are "magic".
llvm-svn: 144253
|
| |
|
|
|
|
| |
- Gives us a place to hang target specific metadata (like whether the target has a JIT).
llvm-svn: 144250
|
| |
|
|
|
|
| |
When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses
llvm-svn: 144100
|
| |
|
|
|
|
| |
added a layer of indirection with no value (not even conciseness).
llvm-svn: 143727
|
| |
|
|
| |
llvm-svn: 143634
|
| |
|
|
|
|
| |
no pattern.
llvm-svn: 142130
|
| |
|
|
|
|
| |
v2i64; CellSPU/shift_ops.ll fails when promoting elements.
llvm-svn: 142081
|
| |
|
|
|
|
| |
Not having it confused assembly printing of jumptables.
llvm-svn: 141862
|
| |
|
|
| |
llvm-svn: 141665
|
| |
|
|
| |
llvm-svn: 141266
|
| |
|
|
| |
llvm-svn: 141075
|
| |
|
|
|
| |
Test: CellSPU/v2i32.ll when running with -promote-elements
llvm-svn: 141074
|
| |
|
|
|
|
|
|
|
|
|
|
| |
with a vector condition); such selects become VSELECT codegen nodes.
This patch also removes VSETCC codegen nodes, unifying them with SETCC
nodes (codegen was actually often using SETCC for vector SETCC already).
This ensures that various DAG combiner optimizations kick in for vector
comparisons. Passes dragonegg bootstrap with no testsuite regressions
(nightly testsuite as well as "make check-all"). Patch mostly by
Nadav Rotem.
llvm-svn: 139159
|
| |
|
|
| |
llvm-svn: 139004
|
| |
|
|
|
|
| |
Patch supplied by Liu (projlc@gmail.com)
llvm-svn: 138799
|
| |
|
|
| |
llvm-svn: 138630
|
| |
|
|
|
|
| |
These are strictly utilities for registering targets and components.
llvm-svn: 138450
|
| |
|
|
|
|
| |
from MC.
llvm-svn: 138367
|
| |
|
|
| |
llvm-svn: 138186
|
| |
|
|
|
|
|
|
| |
module.
Patch by Pekka Jääskeläinen.
llvm-svn: 138037
|