| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
lowering. We'll either figure it out, or not and be lowered by
SelectionDAGBuild.
Add test.
llvm-svn: 94775
|
| |
|
|
| |
llvm-svn: 94771
|
| |
|
|
| |
llvm-svn: 94765
|
| |
|
|
|
|
|
| |
enhanced disassembler, and the necessary makefile
rules to build the table for X86.
llvm-svn: 94764
|
| |
|
|
| |
llvm-svn: 94763
|
| |
|
|
|
|
|
| |
"visit*" method is called, take the newly created nodes, walk them in a DFS
fashion, and if they don't have an ordering set, then give it one.
llvm-svn: 94757
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getelementptr (i8* inttoptr (i64 1 to i8*), i32 -1)
to
inttoptr (i64 0 to i8*)
from the VMCore constant folder. It didn't handle sign-extension properly
in the case where the source integer is smaller than a pointer size. And,
it relied on an assumption about sizeof(i8).
The Analysis constant folder still folds these kinds of things; it has
access to TargetData, so it can do them right.
Add a testcase which tests that the VMCore constant folder doesn't
miscompile this, and that the Analysis folder does fold it.
llvm-svn: 94750
|
| |
|
|
| |
llvm-svn: 94746
|
| |
|
|
|
|
|
| |
when it should have been and'd with LowBits. Fix that and while there beef
up the logic in the case of a negative LHS.
llvm-svn: 94745
|
| |
|
|
| |
llvm-svn: 94743
|
| |
|
|
|
|
| |
rather than after.
llvm-svn: 94742
|
| |
|
|
|
|
|
|
|
|
|
|
| |
it has before/end body hooks.
lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp | 49 ++-----------
lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp | 87 ++++++------------------
lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp | 56 +++------------
test/CodeGen/XCore/ashr.ll | 2
4 files changed, 48 insertions(+), 146 deletions(-)
llvm-svn: 94741
|
| |
|
|
|
|
|
| |
getOffsetOf, and remove the comment about assuming i8 is byte-aligned,
which is no longer applicable.
llvm-svn: 94738
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use plain SCEVUnknowns with ConstantExpr::getSizeOf and
ConstantExpr::getOffsetOf constants. This eliminates a bunch of
special-case code.
Also add code for pattern-matching these expressions, for clients that
want to recognize them.
Move ScalarEvolution's logic for expanding array and vector sizeof
expressions into an element count times the element size, to expose
the multiplication to subsequent folding, into the regular constant
folder.
llvm-svn: 94737
|
| |
|
|
| |
llvm-svn: 94732
|
| |
|
|
|
|
|
|
| |
type is different from its inputs.
This fixes PR6146.
llvm-svn: 94731
|
| |
|
|
| |
llvm-svn: 94729
|
| |
|
|
| |
llvm-svn: 94728
|
| |
|
|
|
|
|
| |
Diffstat:
6 files changed, 30 insertions(+), 284 deletions(-)
llvm-svn: 94727
|
| |
|
|
|
|
|
| |
This allows code gen and the exception table writer to cooperate to make sure
landing pads are associated with the correct invoke locations.
llvm-svn: 94726
|
| |
|
|
|
|
|
|
| |
runOnMachineFunction, and switch PPC to use EmitFunctionBody.
The two ppc asmprinters now don't heave to define
runOnMachineFunction.
llvm-svn: 94722
|
| |
|
|
| |
llvm-svn: 94719
|
| |
|
|
|
|
| |
"0" is nice and target independent.
llvm-svn: 94718
|
| |
|
|
|
|
|
|
| |
Move the X86 implementation of function body emission up to
AsmPrinter::EmitFunctionBody, which works by calling the virtual
EmitInstruction method.
llvm-svn: 94716
|
| |
|
|
|
|
|
| |
Overload it in the ARM backend to do nothing, since is does insane
constant pool emission.
llvm-svn: 94708
|
| |
|
|
| |
llvm-svn: 94706
|
| |
|
|
|
|
| |
constify EmitLinkage.
llvm-svn: 94705
|
| |
|
|
| |
llvm-svn: 94703
|
| |
|
|
|
|
| |
MachineFunction::Alignment instead.
llvm-svn: 94701
|
| |
|
|
|
|
| |
is now less than 200 LOC!
llvm-svn: 94699
|
| |
|
|
| |
llvm-svn: 94698
|
| |
|
|
|
|
|
| |
let that stop it from being deleted, and change the
DEBUG_VALUE value to undef.
llvm-svn: 94694
|
| |
|
|
|
|
| |
per document.
llvm-svn: 94693
|
| |
|
|
|
|
| |
Instructions (which map to themselves)
llvm-svn: 94691
|
| |
|
|
|
|
|
| |
This was already being done in SSAUpdater::GetValueAtEndOfBlock so I've
just changed SSAUpdater to check for existing PHIs in both places.
llvm-svn: 94690
|
| |
|
|
| |
llvm-svn: 94687
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.
Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.
Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
llvm-svn: 94686
|
| |
|
|
| |
llvm-svn: 94684
|
| |
|
|
| |
llvm-svn: 94683
|
| |
|
|
| |
llvm-svn: 94673
|
| |
|
|
| |
llvm-svn: 94672
|
| |
|
|
| |
llvm-svn: 94671
|
| |
|
|
|
|
|
| |
which allows targets to override function entry label emission.
Use it to convert linux/ppc to use EmitFunctionHeader().
llvm-svn: 94667
|
| |
|
|
|
|
|
|
|
| |
even when -tailcallopt is not specified and it does not require changing ABI.
First case is the most trivial one. Perform tail call optimization when both
the caller and callee do not return values and when the callee does not take
any input arguments.
llvm-svn: 94664
|
| |
|
|
| |
llvm-svn: 94650
|
| |
|
|
| |
llvm-svn: 94649
|
| |
|
|
| |
llvm-svn: 94648
|
| |
|
|
|
|
| |
This should fix a bunch of linux buildbot failures.
llvm-svn: 94643
|
| |
|
|
|
|
| |
metadata to dbg.value
llvm-svn: 94634
|
| |
|
|
|
|
| |
to function arguments
llvm-svn: 94632
|