| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820
|
| |
|
|
| |
llvm-svn: 116443
|
| |
|
|
| |
llvm-svn: 115996
|
| |
|
|
| |
llvm-svn: 110460
|
| |
|
|
| |
llvm-svn: 110410
|
| |
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
| |
|
|
| |
llvm-svn: 109045
|
| |
|
|
|
|
|
|
|
|
| |
on RAUW of functions, this is a correctness issue instead of a mere memory
usage problem.
No testcase until the new MergeFunctions can land.
llvm-svn: 103653
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
This is a more conservative version of r98089 that doesn't break the clang
test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining
for constant folding.
llvm-svn: 98099
|
| |
|
|
| |
llvm-svn: 98094
|
| |
|
|
|
|
|
|
|
|
|
| |
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
llvm-svn: 98089
|
| |
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
| |
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|
| |
|
|
| |
llvm-svn: 83998
|
| |
|
|
|
|
|
| |
by hand, and fix a few places that were using hasInitializer() that
appear to depend on the initializer value.
llvm-svn: 79441
|
| |
|
|
| |
llvm-svn: 61969
|
| |
|
|
|
|
|
|
|
| |
function.
- This explicitly models the costs for functions which should
"always" or "never" be inlined. This fixes bugs where such costs
were not previously respected.
llvm-svn: 58450
|
| |
|
|
| |
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
|
| |
|
|
|
|
| |
Function Notes also. Function notes are stored at index ~0.
llvm-svn: 56511
|
| |
|
|
| |
llvm-svn: 56477
|
| |
|
|
| |
llvm-svn: 55717
|
| |
|
|
| |
llvm-svn: 55711
|
| |
|
|
| |
llvm-svn: 55708
|
| |
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
| |
|
|
|
|
|
|
| |
each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it).
Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining.
llvm-svn: 48725
|
| |
|
|
|
|
| |
the inliner pass. Patch by Robert Zeh.
llvm-svn: 45903
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
|
|
| |
reduction)
llvm-svn: 44281
|
| |
|
|
| |
llvm-svn: 40560
|
| |
|
|
|
|
|
| |
This interface allows clients to inline bunch of functions with module
level call graph information.:wq
llvm-svn: 40486
|
| |
|
|
|
|
| |
with weak linkage.
llvm-svn: 37723
|
| |
|
|
| |
llvm-svn: 37665
|
| |
|
|
| |
llvm-svn: 37491
|
| |
|
|
| |
llvm-svn: 37481
|
| |
|
|
| |
llvm-svn: 36894
|
| |
|
|
| |
llvm-svn: 36873
|
| |
|
|
| |
llvm-svn: 36662
|
| |
|
|
|
|
|
| |
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
|
| |
|
|
| |
llvm-svn: 36632
|
| |
|
|
|
|
|
| |
the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
llvm-svn: 33939
|
| |
|
|
| |
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
|