| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 97142
|
| |
|
|
| |
llvm-svn: 97141
|
| |
|
|
|
|
|
|
| |
format is not parsable, even if the module is legal. To get parsable output,
dump the module instead of the function or smaller, since metadata kind are
attached to the module (not the context).
llvm-svn: 97124
|
| |
|
|
|
|
|
|
|
|
| |
operators.
The test difference is just due to the multiplication operands
being commuted (and thus requiring a more elaborate match). In
optimized code, that expression would be folded.
llvm-svn: 96816
|
| |
|
|
| |
llvm-svn: 96807
|
| |
|
|
| |
llvm-svn: 96616
|
| |
|
|
| |
llvm-svn: 96609
|
| |
|
|
| |
llvm-svn: 96370
|
| |
|
|
|
|
| |
methods to try to have the type predicates be more logically positioned.
llvm-svn: 96349
|
| |
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
| |
|
|
|
|
| |
'i1' type.
llvm-svn: 96282
|
| |
|
|
|
|
|
| |
Module (we were called with verifyFunction and an unowned Function) we can't
rely on Mod->getContext().
llvm-svn: 96275
|
| |
|
|
|
|
| |
fixes a crash using FPM on a Function that isn't owned by a Module.
llvm-svn: 96273
|
| |
|
|
|
|
| |
functions not embedded within modules.
llvm-svn: 96272
|
| |
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
| |
|
|
|
|
| |
separate LLVMContexts.
llvm-svn: 96051
|
| |
|
|
| |
llvm-svn: 96011
|
| |
|
|
|
|
|
| |
implement support for it) that the stack should be forcibly realigned in the
prologue (and the process reversed in the epilogue).
llvm-svn: 95945
|
| |
|
|
| |
llvm-svn: 95918
|
| |
|
|
| |
llvm-svn: 95903
|
| |
|
|
| |
llvm-svn: 95856
|
| |
|
|
| |
llvm-svn: 95801
|
| |
|
|
|
|
| |
to be printed, in place of the familiar "uses=" comments.
llvm-svn: 95798
|
| |
|
|
|
|
| |
different word was intended.
llvm-svn: 95795
|
| |
|
|
| |
llvm-svn: 95781
|
| |
|
|
|
|
| |
pointer type.
llvm-svn: 95769
|
| |
|
|
|
|
| |
This allows it to be properly initialized with bit widths > 65535
llvm-svn: 95731
|
| |
|
|
|
|
| |
cppcheck!
llvm-svn: 95527
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This time it's for real! I am going to hook this up in the frontends as well.
The inliner has some experimental heuristics for dealing with the inline hint.
When given a -respect-inlinehint option, functions marked with the inline
keyword are given a threshold just above the default for -O3.
We need some experiments to determine if that is the right thing to do.
llvm-svn: 95466
|
| |
|
|
| |
llvm-svn: 95086
|
| |
|
|
|
|
| |
generalize it to handle more cases.
llvm-svn: 95045
|
| |
|
|
| |
llvm-svn: 95001
|
| |
|
|
|
|
| |
into 80 columns to match my artistic preferences.
llvm-svn: 95000
|
| |
|
|
| |
llvm-svn: 94997
|
| |
|
|
|
|
| |
evaluateICmpRelation wasn't handling blockaddress.
llvm-svn: 94993
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cases, and implement target-independent folding rules for alignof and
offsetof. Also, reassociate reassociative operators when it leads to
more folding.
Generalize ScalarEvolution's isOffsetOf to recognize offsetof on
arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr
to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.
Make the target-dependent folder promote GEP array indices to
pointer-sized integers, to make implicit casting explicit and exposed
to subsequent folding.
And add a bunch of testcases for this new functionality, and a bunch
of related existing functionality.
llvm-svn: 94987
|
| |
|
|
| |
llvm-svn: 94982
|
| |
|
|
|
|
|
| |
array types as well as struct types, and which accepts arbitrary
Constant indicies.
llvm-svn: 94981
|
| |
|
|
|
|
| |
them from values that are not actually defined in the module.
llvm-svn: 94854
|
| |
|
|
| |
llvm-svn: 94808
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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: 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-as: t.ll:1:25: error: invalid cast opcode for cast from '[4 x i8]' to '[1 x i32]'
@x = constant [1 x i32] bitcast ([4 x i8] c"abcd" to [1 x i32])
^
llvm-svn: 94595
|
| |
|
|
|
|
| |
in the case of empty and full ranges.
llvm-svn: 94548
|
| |
|
|
|
|
| |
by metadata (since metadata does not appear in a value's use list)
llvm-svn: 94492
|
| |
|
|
|
|
|
|
|
|
|
|
| |
parameter with a default value, instead of just hardcoding it in the
implementation. The limit of MaxLookup = 6 was introduced in r69151 to fix
a performance problem with O(n^2) behavior in instcombine, but the scalarrepl
pass is relying on getUnderlyingObject to go all the way back to an AllocaInst.
Making the limit part of the method signature makes it clear that by default
the result is limited and should help avoid similar problems in the future.
This fixes pr6126.
llvm-svn: 94433
|
| |
|
|
| |
llvm-svn: 94377
|