| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the section or the visibility from one global
value to another: copyAttributesFrom. This is
particularly useful for duplicating functions:
previously this was done by explicitly copying
each attribute in turn at each place where a
new function was created out of an old one, with
the result that obscure attributes were regularly
forgotten (like the collector or the section).
Hopefully now everything is uniform and nothing
is forgotten.
llvm-svn: 51567
|
|
|
|
|
|
| |
its associated call site.
llvm-svn: 51204
|
|
|
|
|
|
| |
makefile targets to find these better.
llvm-svn: 51143
|