| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 66083
|
|
|
|
|
|
| |
optimizer in deleting the global. And while deleting global, delete global's debug info also.
llvm-svn: 65994
|
|
|
|
|
|
|
|
| |
here. Since we only do the transform if there is
one use, strip off any such users in the hope of
making the transform fire more often.
llvm-svn: 64926
|
|
|
|
| |
llvm-svn: 64773
|
|
|
|
|
|
|
| |
one-definition-rule llvm-gcc changes (coming soon
to a tree near you!).
llvm-svn: 64588
|
|
|
|
|
|
|
|
| |
alias can be morphed into the target. Implement this
transform, and fix a crash in the existing transform at
the same time.
llvm-svn: 64583
|
|
|
|
|
|
|
|
|
| |
There is now a direct way from value-use-iterator to incoming block in PHINode's API.
This way we avoid the iterator->index->iterator trip, and especially the costly
getOperandNo() invocation. Additionally there is now an assertion that the iterator
really refers to one of the PHI's Uses.
llvm-svn: 62869
|
|
|
|
| |
llvm-svn: 62279
|
|
|
|
|
|
|
|
| |
vector and extraneous loop over it, 2) not delete globals used by
phis/selects etc which could actually be useful. This fixes PR3321.
Many thanks to Duncan for narrowing this down.
llvm-svn: 62201
|
|
|
|
| |
llvm-svn: 62165
|
|
|
|
|
|
| |
suggested by Chris.
llvm-svn: 62099
|
|
|
|
| |
llvm-svn: 61879
|
|
|
|
|
|
| |
iterator invalidation problems.
llvm-svn: 61124
|
|
|
|
|
|
|
|
|
| |
nodes. This allows it to do fairly general phi insertion if a
load from a pointer global wants to be SRAd but the load is used
by (recursive) phi nodes. This fixes a pessimization on ppc
introduced by Load PRE.
llvm-svn: 61123
|
|
|
|
|
|
|
| |
the load multiple times, make sure the check the uses of the PHI to
ensure they are transformable.
llvm-svn: 61102
|
|
|
|
| |
llvm-svn: 61101
|
|
|
|
| |
llvm-svn: 61081
|
|
|
|
|
|
| |
variable sized array allocations.
llvm-svn: 61051
|
|
|
|
| |
llvm-svn: 61047
|
|
|
|
|
|
| |
ValueIsOnlyUsedLocallyOrStoredToOneGlobal.
llvm-svn: 61046
|
|
|
|
|
|
| |
Use GetElementPtrInst::hasAllZeroIndices where possible.
llvm-svn: 61045
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 56005
|
|
|
|
| |
llvm-svn: 56001
|
|
|
|
| |
llvm-svn: 55779
|
|
|
|
| |
llvm-svn: 54707
|
|
|
|
| |
llvm-svn: 53716
|
|
|
|
| |
llvm-svn: 51663
|
|
|
|
|
|
| |
exclude struct and array types.
llvm-svn: 51459
|
|
|
|
|
|
| |
Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
llvm-svn: 51200
|
|
|
|
|
|
| |
makefile targets to find these better.
llvm-svn: 51143
|
|
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
|
|
|
|
|
|
|
|
| |
appropriate alignment. This fixes a miscompilation of 252.eon on
x86-64 (rdar://5891920).
Bill, please pull this into Tak.
llvm-svn: 50308
|
|
|
|
|
|
|
|
| |
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
|
|
|
|
|
|
| |
adding <map> to many files that actually do need it.
llvm-svn: 48667
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. There is now a "PAListPtr" class, which is a smart pointer around
the underlying uniqued parameter attribute list object, and manages
its refcount. It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
ParamAttrsWithIndex's, no need to make a SmallVector of a specific
size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
dereferencing the pointer is simplified to just access the
PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
bit simpler.
Phase #2 will rename some stuff (e.g. PAListPtr) and do other less
invasive changes.
llvm-svn: 48289
|
|
|
|
|
|
|
| |
stuff into ParamAttrsList.h. Per feedback from
ParamAttrs changes.
llvm-svn: 47504
|
|
|
|
| |
llvm-svn: 47371
|
|
|
|
|
|
|
|
| |
requested by Chris. While there, do the same
for an existing function committed by someone
called "lattner" :)
llvm-svn: 47273
|
|
|
|
|
|
| |
is not passed as an argument to a trampoline intrinsic.
llvm-svn: 47220
|
|
|
|
| |
llvm-svn: 46523
|
|
|
|
|
|
|
| |
byval work. This miscompilation is due to the program indexing an array out
of range and us doing a transformation that broke this.
llvm-svn: 45949
|
|
|
|
| |
llvm-svn: 45948
|
|
|
|
|
|
| |
difficult to understand the invariants.
llvm-svn: 45947
|
|
|
|
|
|
| |
easier to show that its safe. No functionality change.
llvm-svn: 45946
|
|
|
|
| |
llvm-svn: 45568
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
| |
of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
llvm-svn: 45082
|
|
|
|
|
|
| |
patch on friday.
llvm-svn: 44068
|
|
|
|
|
|
|
| |
fixes a crash on Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll and
rdar://5585488.
llvm-svn: 43949
|