| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
| 
|  | 
instead of hasWeakLinkage in a bunch of optimization
passes.
llvm-svn: 56782
 | 
| | 
| 
| 
|  | 
llvm-svn: 56716
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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: 56527
 | 
| | 
| 
| 
| 
| 
|  | 
Do not check isDeclaration() in hasNote(). It is clients' responsibility.
llvm-svn: 56524
 | 
| | 
| 
| 
|  | 
llvm-svn: 56513
 | 
| | 
| 
| 
| 
| 
|  | 
Function Notes also. Function notes are stored at index ~0.
llvm-svn: 56511
 | 
| | 
| 
| 
|  | 
llvm-svn: 56477
 | 
| | 
| 
| 
|  | 
llvm-svn: 56419
 | 
| | 
| 
| 
|  | 
llvm-svn: 56315
 | 
| | 
| 
| 
| 
| 
|  | 
branch condition.
llvm-svn: 56286
 | 
| | 
| 
| 
|  | 
llvm-svn: 55971
 | 
| | 
| 
| 
| 
| 
| 
|  | 
long as the callgraph is correct.  It checks
for wrong callgraphs more strictly.
llvm-svn: 55894
 | 
| | 
| 
| 
| 
| 
|  | 
commit.
llvm-svn: 55865
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
because it does not maintain a correct list
of callsites.  I discovered (see following
commit) that the inliner will create a wrong
callgraph if it is fed a callgraph with
correct edges but incorrect callsites.  These
were created by Prune-EH, and while it wasn't
done via removeCallEdgeTo, it could have been
done via removeCallEdgeTo, which is an accident
waiting to happen.  Use removeCallEdgeFor
instead.
llvm-svn: 55859
 | 
| | 
| 
| 
|  | 
llvm-svn: 55835
 | 
| | 
| 
| 
|  | 
llvm-svn: 55779
 | 
| | 
| 
| 
|  | 
llvm-svn: 55712
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
use raw_ostream instead of std::ostream.  Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).
Other interesting changes:
 1) This makes Value::print be non-virtual.
 2) AP[S]Int and ConstantRange can no longer print to ostream directly, 
    use raw_ostream instead.
 3) This fixes a bug in raw_os_ostream where it didn't flush itself 
    when destroyed.
 4) This adds a new SDNode::print method, instead of only allowing "dump".
A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream 
versions.
This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.
llvm-svn: 55263
 | 
| | 
| 
| 
| 
| 
|  | 
before/after effects of a pass, crazy!
llvm-svn: 55230
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
returning an std::string by value, it fills in a SmallString/SmallVector
passed in.  This significantly reduces string thrashing in some cases.
More specifically, this:
 - Adds an operator<< and a print method for APInt that allows you to 
   directly send them to an ostream.
 - Reimplements APInt::toString to be much simpler and more efficient
   algorithmically in addition to not thrashing strings quite as much.
This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter.  This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.
llvm-svn: 54873
 | 
| | 
| 
| 
|  | 
llvm-svn: 54780
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941
 | 
| | 
| 
| 
|  | 
llvm-svn: 53761
 | 
| | 
| 
| 
|  | 
llvm-svn: 53760
 | 
| | 
| 
| 
|  | 
llvm-svn: 53757
 | 
| | 
| 
| 
|  | 
llvm-svn: 53735
 | 
| | 
| 
| 
| 
| 
|  | 
more than once.
llvm-svn: 53731
 | 
| | 
| 
| 
|  | 
llvm-svn: 53712
 | 
| | 
| 
| 
|  | 
llvm-svn: 53705
 | 
| | 
| 
| 
|  | 
llvm-svn: 53557
 | 
| | 
| 
| 
|  | 
llvm-svn: 53549
 | 
| | 
| 
| 
| 
| 
| 
|  | 
a hack around the fact that we don't represent the CFG correctly for sj/lj.
It fixes PR2486.
llvm-svn: 53540
 | 
| | 
| 
| 
|  | 
llvm-svn: 53538
 | 
| | 
| 
| 
| 
| 
|  | 
fixes PR2540.
llvm-svn: 53533
 | 
| | 
| 
| 
| 
| 
|  | 
No functionality change.
llvm-svn: 53532
 | 
| | 
| 
| 
|  | 
llvm-svn: 53531
 | 
| | 
| 
| 
| 
| 
|  | 
No functionality change.
llvm-svn: 53530
 | 
| | 
| 
| 
|  | 
llvm-svn: 53528
 | 
| | 
| 
| 
|  | 
llvm-svn: 53527
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
multiline
conditionals and commenting the code better.
No functionality change.
llvm-svn: 53526
 | 
| | 
| 
| 
| 
| 
|  | 
- Avoid speculatively execute vector ops.
llvm-svn: 52703
 | 
| | 
| 
| 
|  | 
llvm-svn: 52688
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
in the presence of out-of-loop users of in-loop values and the trip
count is not a known multiple of the unroll count, and to be a bit
simpler overall. This fixes PR2253.
llvm-svn: 52645
 | 
| | 
| 
| 
|  | 
llvm-svn: 52616
 | 
| | 
| 
| 
|  | 
llvm-svn: 52606
 | 
| | 
| 
| 
|  | 
llvm-svn: 52590
 | 
| | 
| 
| 
|  | 
llvm-svn: 52544
 | 
| | 
| 
| 
| 
| 
| 
|  | 
return statements and aggregate returns so that it handles both
correctly.
llvm-svn: 52519
 |