| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 94281
|
|
|
|
|
|
| |
to a sext/zext
llvm-svn: 94280
|
|
|
|
| |
llvm-svn: 94243
|
|
|
|
| |
llvm-svn: 94195
|
|
|
|
|
|
|
|
|
|
|
| |
missing ones are libsupport, libsystem and libvmcore. libvmcore is
currently blocked on bugpoint, which uses EH. Once it stops using
EH, we can switch it off.
This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.
llvm-svn: 94164
|
|
|
|
| |
llvm-svn: 94162
|
|
|
|
| |
llvm-svn: 94161
|
|
|
|
| |
llvm-svn: 94160
|
|
|
|
| |
llvm-svn: 94156
|
|
|
|
| |
llvm-svn: 94155
|
|
|
|
| |
llvm-svn: 94154
|
|
|
|
| |
llvm-svn: 94100
|
|
|
|
|
|
|
|
|
|
| |
if one of the vectors didn't have elements (such as undef). Fixes PR 6096.
Fix an issue in the constant folder where fcmp (<2 x %ty>, <2 x %ty>) would
have <2 x i1> type if constant folding was successful and i1 type if it wasn't.
This exposed a related issue in the bitcode reader.
llvm-svn: 94069
|
|
|
|
| |
llvm-svn: 93995
|
|
|
|
| |
llvm-svn: 93990
|
|
|
|
|
|
| |
values
llvm-svn: 93984
|
|
|
|
|
|
|
| |
logic enforced in the test case as well, so hopefully it is correct. Please
review Victor.
llvm-svn: 93980
|
|
|
|
|
|
| |
into getFunctionForValue()
llvm-svn: 93977
|
|
|
|
|
|
| |
performance-critical code (currently only used by AsmWriter)
llvm-svn: 93802
|
|
|
|
|
|
| |
Function* variable and smallptrset since function-local metadata cannot be cyclic
llvm-svn: 93762
|
|
|
|
|
|
| |
.ll parser, but PR6070 wants it in the verifier too.
llvm-svn: 93756
|
|
|
|
|
|
| |
the normal situation for non function-local metadata)
llvm-svn: 93748
|
|
|
|
| |
llvm-svn: 93665
|
|
|
|
| |
llvm-svn: 93664
|
|
|
|
| |
llvm-svn: 93656
|
|
|
|
|
|
|
|
| |
Mangler::getMangledName is used from lto
Mangler::setUseQuotes is used in the AsmPrinter
Mangler::setSymbolsCanStartWithDigit is used in the AsmPrinter
llvm-svn: 93652
|
|
|
|
|
|
| |
Mangler that is now transitively dead. woo.
llvm-svn: 93648
|
|
|
|
| |
llvm-svn: 93641
|
|
|
|
|
|
| |
users.
llvm-svn: 93558
|
|
|
|
|
|
|
|
|
| |
its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument.
llvm-svn: 93531
|
|
|
|
|
|
| |
auto-upgraded
llvm-svn: 93515
|
|
|
|
|
|
|
|
| |
its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
llvm-svn: 93504
|
|
|
|
| |
llvm-svn: 93449
|
|
|
|
| |
llvm-svn: 93402
|
|
|
|
|
|
| |
has function that it is local to.
llvm-svn: 93400
|
|
|
|
|
|
|
| |
twine can be represented as a single StringRef. Use the new methode to simplify
some twine users.
llvm-svn: 93317
|
|
|
|
| |
llvm-svn: 93304
|
|
|
|
|
|
|
|
| |
and use them to avoid a copy of a string in getNameWithPrefix in
the common case. It seems like Value::setName and other places
should use this as well?
llvm-svn: 93301
|
|
|
|
|
|
|
|
| |
that I want to completely eliminate. Add fixme's so I remember this
in the future, and add the missing helper that they should be upgraded
to use instead.
llvm-svn: 93300
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of returning it in an std::string. Based on this change:
1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef
2. Change a bunch of targets to call makeNameProper with a smallstring,
making several of them *much* more efficient.
3. Rewrite Mangler::makeNameProper to not build names and then prepend
prefixes, not use temporary std::strings, and to avoid other crimes.
llvm-svn: 93298
|
|
|
|
| |
llvm-svn: 93296
|