| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 33514
|
|
|
|
|
|
|
|
|
|
| |
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
|
|
|
|
|
|
|
|
|
|
| |
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
|
|
|
|
| |
llvm-svn: 30231
|
|
|
|
| |
llvm-svn: 29925
|
|
|
|
|
|
|
| |
InlineFunction handles this case safely. This implements
Transforms/Inline/dynamic_alloca_test.ll.
llvm-svn: 25288
|
|
|
|
| |
llvm-svn: 22113
|
|
|
|
| |
llvm-svn: 21427
|
|
|
|
|
|
|
|
| |
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*.
This patch is contributed by Gabor Greif, thanks!
llvm-svn: 20597
|
|
|
|
| |
llvm-svn: 18109
|
|
|
|
|
|
| |
nightly testers
llvm-svn: 17646
|
|
|
|
|
|
|
| |
exciting to inline. Only inline medium or small sized functions with a
single call site.
llvm-svn: 17588
|
|
|
|
|
|
|
| |
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
llvm-svn: 16436
|
|
|
|
|
|
|
|
|
|
| |
instructions in the body of the function (not the entry block). This fixes
test/Programs/SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c
and test/Programs/External/SPEC/CINT2000/176.gcc on zion.
This should obviously be pulled into 1.3.
llvm-svn: 15684
|
|
|
|
|
|
| |
- Minimize redundant isa<GlobalValue> usage
llvm-svn: 14948
|
|
|
|
|
|
|
|
| |
Now we collect all of the call sites we are interested in inlining, then inline
them. This entirely avoids issues with trying to inline a call site we got by
inlining another call site. This also eliminates iterator invalidation issues.
llvm-svn: 12770
|
|
|
|
|
|
| |
horrible hack.
llvm-svn: 12423
|
|
|
|
|
|
|
|
|
|
| |
* Be a lot more accurate about what the effects will be when inlining a call
to a function when an argument is an alloca.
* Dramatically reduce the penalty for inlining a call in a large function.
This heuristic made it almost impossible to inline a function into a large
function, no matter how small the callee is.
llvm-svn: 12363
|
|
|
|
|
|
| |
would have caught this. *sigh*
llvm-svn: 10142
|
|
|
|
|
|
|
|
| |
* Make the cost metric for passing constants in as arguments to functions MUCH
more accurate, by actually estimating the amount of code that will be constant
propagated away.
llvm-svn: 10136
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
| |
llvm-svn: 9285
|
|
|
|
| |
llvm-svn: 9135
|
|
|
|
| |
llvm-svn: 9027
|
|
|
|
| |
llvm-svn: 8930
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of callees between executions.
On eon, in release mode, this changes the inliner from taking 11.5712s
to taking 2.2066s. In debug mode, it went from taking 14.4148s to
taking 7.0745s. In release mode, this is a 24.7% speedup of gccas, in
debug mode, it's a total speedup of 11.7%.
This also makes it slightly more aggressive. This could be because we
are not judging the size of the functions quite as accurately as before.
When we start looking at the performance of the generated code, this can
be investigated further.
llvm-svn: 8893
|
|
|
|
|
|
|
|
|
| |
* Separate the policy decisions into a derived class [InlineSimple]
* Move the inlining mechanics into a base class [Inliner]
* Change the inliner to be an SCCPass, making it more structured and
eventually pipelinable with other SCC passes
llvm-svn: 8257
|
|
|
|
| |
llvm-svn: 8107
|
|
|
|
|
|
|
| |
inlined the function.
Implements: Inline/inline_dce.ll
llvm-svn: 8101
|
|
|
|
| |
llvm-svn: 7492
|
|
|
|
| |
llvm-svn: 6929
|
|
|
|
|
|
| |
* Make the function inliner _significantly_ smarter. :)
llvm-svn: 6396
|
|
|
|
| |
llvm-svn: 6024
|
|
|
|
| |
llvm-svn: 6023
|
|
|
|
| |
llvm-svn: 5872
|
|
|
|
| |
llvm-svn: 5222
|
|
|
|
| |
llvm-svn: 4770
|
|
|
|
| |
llvm-svn: 4766
|
|
|
|
| |
llvm-svn: 4764
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
* Updated ProgrammersManual with new semantics.
llvm-svn: 4001
|
|
|
|
|
|
| |
is only a single return from the function!
llvm-svn: 3878
|
|
|
|
|
|
| |
ilist:104: failed assertion `Traits::getNext(NodePtr) != 0 && "Dereferencing end()!"'
llvm-svn: 3768
|
|
|
|
| |
llvm-svn: 3666
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
llvm-svn: 3113
|
|
|
|
|
|
| |
* Register all Passes
llvm-svn: 3015
|
|
|
|
|
|
| |
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779
|
|
|
|
|
|
| |
the command line
llvm-svn: 2601
|
|
|
|
| |
llvm-svn: 2397
|
|
|
|
|
|
| |
to make debugging output a lot nicer.
llvm-svn: 2395
|