| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
changed not to reject invoke of inline asm.
llvm-svn: 45077
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not sure why). If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created. This is bad but
I'm not sure what the best approach is. I'm tempted
to remove the check in the verifier...
llvm-svn: 45073
|
|
|
|
| |
llvm-svn: 44997
|
|
|
|
| |
llvm-svn: 44981
|
|
|
|
| |
llvm-svn: 44965
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2. Using zero-extended value of Scale and unsigned division is safe provided
that Scale doesn't have the sign bit set.
Previously these 2 instructions:
%p = bitcast [100 x {i8,i8,i8}]* %x to i8*
%q = getelementptr i8* %p, i32 -4
were combined into:
%q = getelementptr [100 x { i8, i8, i8 }]* %x, i32 0,
i32 1431655764, i32 0
what was incorrect.
llvm-svn: 44936
|
|
|
|
| |
llvm-svn: 44905
|
|
|
|
|
|
| |
extension is also defined in the same BB as the extension.
llvm-svn: 44896
|
|
|
|
|
|
|
|
| |
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe. While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".
llvm-svn: 44817
|
|
|
|
|
|
| |
on functions as it calculates them.
llvm-svn: 44802
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
methods are new to Function:
bool hasCollector() const;
const std::string &getCollector() const;
void setCollector(const std::string &);
void clearCollector();
The assembly representation is as such:
define void @f() gc "shadow-stack" { ...
The implementation uses an on-the-side table to map Functions to
collector names, such that there is no overhead. A StringPool is
further used to unique collector names, which are extremely
likely to be unique per process.
llvm-svn: 44769
|
|
|
|
|
|
|
|
| |
some (disabled) debugging code
to make such problems easier to diagnose in the future, written by Duncan Sands.
llvm-svn: 44695
|
|
|
|
| |
llvm-svn: 44655
|
|
|
|
| |
llvm-svn: 44650
|
|
|
|
|
|
| |
of the source with result of extension.
llvm-svn: 44643
|
|
|
|
|
|
|
|
|
| |
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
|
|
|
|
| |
llvm-svn: 44543
|
|
|
|
|
|
|
|
| |
insert new ExitValue after this operand definition.
This fixes PR1828.
llvm-svn: 44539
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into alias analysis. This meant updating the API
which now has versions of the getModRefBehavior,
doesNotAccessMemory and onlyReadsMemory methods
which take a callsite parameter. These should be
used unless the callsite is not known, since in
general they can do a better job than the versions
that take a function. Also, users should no longer
call the version of getModRefBehavior that takes
both a function and a callsite. To reduce the
chance of misuse it is now protected.
llvm-svn: 44487
|
|
|
|
| |
llvm-svn: 44437
|
|
|
|
|
|
| |
use them.
llvm-svn: 44403
|
|
|
|
|
|
|
|
|
|
|
|
| |
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
llvm-svn: 44359
|
|
|
|
|
|
| |
This involves a small interface change.
llvm-svn: 44348
|
|
|
|
| |
llvm-svn: 44325
|
|
|
|
|
|
| |
are redundant.
llvm-svn: 44323
|
|
|
|
| |
llvm-svn: 44320
|
|
|
|
| |
llvm-svn: 44318
|
|
|
|
|
|
|
|
|
| |
trivial difference in function attributes, allow calls to it to
be converted to direct calls. Based on a patch by Török Edwin.
While there, move the various lists of mutually incompatible
parameters etc out of the verifier and into ParameterAttributes.h.
llvm-svn: 44315
|
|
|
|
| |
llvm-svn: 44293
|
|
|
|
|
|
|
|
| |
from the old ADCE implementation (there it was
correct because the transform was being done
for read-only functions).
llvm-svn: 44287
|
|
|
|
| |
llvm-svn: 44284
|
|
|
|
|
|
| |
reduction)
llvm-svn: 44281
|
|
|
|
| |
llvm-svn: 44280
|
|
|
|
|
|
|
| |
exceptions, so don't turn invokes of them into
calls.
llvm-svn: 44278
|
|
|
|
| |
llvm-svn: 44262
|
|
|
|
| |
llvm-svn: 44234
|
|
|
|
|
|
|
| |
fix an occasional nonrepeatable bootstrap failure we've
been seeing on Darwin.
llvm-svn: 44202
|
|
|
|
| |
llvm-svn: 44188
|
|
|
|
|
|
| |
Thanks to him for his detailed analysis of the problem.
llvm-svn: 44162
|
|
|
|
|
|
|
|
|
| |
from a file containing Function/BasicBlock pairings. This is not safe against
anonymous or abnormally-named Funcs or BBs.
Make bugpoint use this interface to pass the BBs list to the child bugpoint.
llvm-svn: 44101
|
|
|
|
|
|
| |
by inserting unreachable after no-return calls.
llvm-svn: 44099
|
|
|
|
|
|
| |
patch on friday.
llvm-svn: 44068
|
|
|
|
|
|
| |
and simplifycfg in the rare cases when it is needed.
llvm-svn: 44044
|
|
|
|
|
|
|
| |
fixes a crash on Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll and
rdar://5585488.
llvm-svn: 43949
|
|
|
|
| |
llvm-svn: 43941
|
|
|
|
| |
llvm-svn: 43940
|
|
|
|
| |
llvm-svn: 43939
|
|
|
|
| |
llvm-svn: 43897
|
|
|
|
| |
llvm-svn: 43893
|
|
|
|
| |
llvm-svn: 43780
|