| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 130160
|
|
|
|
|
|
|
|
|
| |
uses of the function's blocks with undef. This code isn't needed,
because BasicBlock's destructor handles such uses. Also, undef isn't
correct, since blockaddresses may still be used for comparisons
with null.
llvm-svn: 121170
|
|
|
|
| |
llvm-svn: 120298
|
|
|
|
|
|
|
|
|
| |
is necessary. Inherits from new templated baseclass CallSiteBase<>
which is highly customizable. Base CallSite on it too, in a configuration
that allows full mutation.
Adapt some call sites in analyses to employ ImmutableCallSite.
llvm-svn: 100100
|
|
|
|
| |
llvm-svn: 99564
|
|
|
|
|
|
|
|
|
|
|
|
| |
I have audited all getOperandNo calls now, fixing
hidden assumptions. CallSite related uglyness will
be eliminated successively.
Note this patch has a long and griveous history,
for all the back-and-forths have a look at
CallSite.h's log.
llvm-svn: 99399
|
|
|
|
|
|
|
|
| |
if Function::hasAddressTaken works as advertised
also included some cosmetic cleanups
llvm-svn: 99276
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
dereference the type pointer.
llvm-svn: 92726
|
|
|
|
|
|
|
|
|
|
|
| |
a convention (shadowing the setter with private forwarding function) to
prevent subclasses from accidentally using it.
This exposed some bogosity in ConstantExprs, which was propaging the
opcode of the constant expr into the NUW/NSW/Exact field in the
getWithOperands/getWithOperandReplaced methods.
llvm-svn: 92239
|
|
|
|
| |
llvm-svn: 91736
|
|
|
|
|
|
| |
has the 'nest' attribute.
llvm-svn: 91109
|
|
|
|
|
|
| |
zap BlockAddress values.
llvm-svn: 85366
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
|
|
|
| |
llvm-svn: 77516
|
|
|
|
|
|
|
| |
- The only meat here is in Value.{h,cpp} the rest is essential 'const
std::string &' -> 'const Twine &'.
llvm-svn: 77048
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
| |
llvm-svn: 74973
|
|
|
|
| |
llvm-svn: 74931
|
|
|
|
| |
llvm-svn: 74878
|
|
|
|
| |
llvm-svn: 74807
|
|
|
|
| |
llvm-svn: 74714
|
|
|
|
| |
llvm-svn: 73723
|
|
|
|
| |
llvm-svn: 73707
|
|
|
|
| |
llvm-svn: 73662
|
|
|
|
| |
llvm-svn: 73647
|
|
|
|
| |
llvm-svn: 73164
|
|
|
|
| |
llvm-svn: 66333
|
|
|
|
|
|
| |
be a win, since almost every interesting function has at least one Argument.
llvm-svn: 65778
|
|
|
|
|
|
|
|
|
|
|
|
| |
its sentinel. This is quite a win when a function really has a basic block.
When the function is just a declaration (and stays so) the old way did not
allocate a sentinel. So this change is most beneficial when the ratio of
function definition to declaration is high. I.e. linkers etc. Incidentally
these are the most resource demanding applications, so I expect that the
reduced malloc traffic, locality and space savings outweigh the cost of
addition of two pointers to Function.
llvm-svn: 65776
|
|
|
|
|
|
| |
or target) can be overloaded or not.
llvm-svn: 65404
|
|
|
|
| |
llvm-svn: 63812
|
|
|
|
|
|
| |
and llvm-gcc.
llvm-svn: 63786
|
|
|
|
|
|
|
|
|
| |
target directories themselves. This also means that VMCore no longer
needs to know about every target's list of intrinsics. Future work
will include converting the PowerPC target to this interface as an
example implementation.
llvm-svn: 63765
|
|
|
|
|
|
| |
not a random piece of it. No functionality change.
llvm-svn: 62066
|
|
|
|
| |
llvm-svn: 61715
|
|
|
|
| |
llvm-svn: 61677
|
|
|
|
| |
llvm-svn: 61532
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- return attributes - inreg, zext and sext
- parameter attributes
- function attributes - nounwind, readonly, readnone, noreturn
Return attributes use 0 as the index.
Function attributes use ~0U as the index.
This patch requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56704
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622
|
|
|
|
| |
llvm-svn: 56535
|
|
|
|
| |
llvm-svn: 56513
|
|
|
|
|
|
| |
Function Notes also. Function notes are stored at index ~0.
llvm-svn: 56511
|
|
|
|
| |
llvm-svn: 55645
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, Collector was confusing to implementors. Several
thought that this compile-time class was the place to implement
their runtime GC heap. Of course, it doesn't even exist at runtime.
Specifically, the renames are:
Collector -> GCStrategy
CollectorMetadata -> GCFunctionInfo
CollectorModuleMetadata -> GCModuleInfo
CollectorRegistry -> GCRegistry
Function::getCollector -> getGC (setGC, hasGC, clearGC)
Several accessors and nested types have also been renamed to be
consistent. These changes should be obvious.
llvm-svn: 54899
|
|
|
|
|
|
|
| |
to different address spaces. This alters the naming scheme for those
intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32
llvm-svn: 54195
|
|
|
|
|
|
| |
parameter attributes.
llvm-svn: 53228
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and better control the abstraction. Rename the type
to MVT. To update out-of-tree patches, the main
thing to do is to rename MVT::ValueType to MVT, and
rewrite expressions like MVT::getSizeInBits(VT) in
the form VT.getSizeInBits(). Use VT.getSimpleVT()
to extract a MVT::SimpleValueType for use in switch
statements (you will get an assert failure if VT is
an extended value type - these shouldn't exist after
type legalization).
This results in a small speedup of codegen and no
new testsuite failures (x86-64 linux).
llvm-svn: 52044
|