| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 135375
|
|
|
|
| |
llvm-svn: 135265
|
|
|
|
| |
llvm-svn: 128465
|
|
|
|
|
|
|
| |
the FailBB dominator is correctly calculated. Believe it or not, there isn't a
functionality change here.
llvm-svn: 128455
|
|
|
|
|
|
| |
dominator information.
llvm-svn: 128452
|
|
|
|
|
|
|
| |
becomes reachable when before it wasn't). Check to make sure that it's not null
before trying to use it.
llvm-svn: 128434
|
|
|
|
|
|
|
| |
protector insertion not working correctly with unreachable code. Since that
revision was rolled out, this test doesn't actual fail before this fix.
llvm-svn: 127497
|
|
|
|
|
|
|
|
|
|
| |
they all ready do). This removes two dominator recomputations prior to isel,
which is a 1% improvement in total llc time for 403.gcc.
The only potentially suspect thing is making GCStrategy recompute dominators if
it used a custom lowering strategy.
llvm-svn: 123064
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 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
|
|
|
|
| |
llvm-svn: 107670
|
|
|
|
|
|
|
|
|
| |
registers. Split out testcases per architecture and os
now.
Patch from Nelson Elhage.
llvm-svn: 107640
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
| |
llvm-svn: 92771
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
does.
llvm-svn: 84916
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
|
|
| |
AllocaInst and MallocInst.
llvm-svn: 75863
|
|
|
|
| |
llvm-svn: 75703
|
|
|
|
|
|
| |
the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
|
|
|
|
|
|
| |
will make it more obvious what it represents, and stop
it being confused with the StoreSize.
llvm-svn: 71349
|
|
|
|
|
|
| |
Delete this default branch, because we're going to generate our own.
llvm-svn: 66234
|
|
|
|
|
|
| |
suggested by Chris.
llvm-svn: 62099
|
|
|
|
| |
llvm-svn: 59519
|
|
|
|
| |
llvm-svn: 59504
|
|
|
|
|
|
|
|
|
| |
- Use less indentation in coding.
- Shorten description.
- Update comments.
- Move code around
llvm-svn: 59496
|
|
|
|
| |
llvm-svn: 59202
|
|
|
|
| |
llvm-svn: 59008
|
|
|
|
|
|
|
| |
basic blocks.
- Minor code clean-up.
llvm-svn: 59002
|
|
|
|
|
|
|
|
|
| |
LLVM IR code and not in the selection DAG ISel. This is a cleaner solution.
- Fix the heuristic for determining if protectors are necessary. The previous
one wasn't checking the proper type size.
llvm-svn: 58824
|
|
|
|
| |
llvm-svn: 58823
|
|
|
|
| |
llvm-svn: 58822
|
|
|
|
|
|
| |
in it, then emit stack protectors.
llvm-svn: 58819
|
|
|
|
|
|
|
| |
- Get rid of "HasStackProtector" in MachineFrameInfo.
- Modify intrinsics to tell which are doing what with memory.
llvm-svn: 58799
|
|
|
|
|
|
| |
"alloca".
llvm-svn: 58792
|
|
|
|
|
|
|
|
|
|
|
|
| |
- stackprotector_prologue creates a stack object and stores the guard there.
- stackprotector_epilogue reads the stack guard from the stack position created
by stackprotector_prologue.
- The PrologEpilogInserter was changed to make sure that the stack guard is
first on the stack frame.
llvm-svn: 58791
|
|
|
|
| |
llvm-svn: 58741
|
|
|
|
| |
llvm-svn: 58740
|
|
|
|
| |
llvm-svn: 58739
|
|
|
|
|
|
| |
isn't going to be generated.
llvm-svn: 58734
|
|
|
|
| |
llvm-svn: 58728
|
|
|
|
|
|
|
|
|
|
| |
"getOrInsertFunction" in that it either adds a new declaration of the global
and returns it, or returns the current one -- optionally casting it to the
correct type.
- Use the new getOrInsertGlobal in the stack protector code.
- Use "splitBasicBlock" in the stack protector code.
llvm-svn: 58727
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use enums instead of magic numbers.
- Rework algorithm to use the bytes size from the target to determine when to
emit stack protectors.
- Get rid of "propolice" in any comments.
- Renamed an option to its expanded form.
- Other miscellanenous changes.
More changes will come after this.
llvm-svn: 58723
|
|
* The prologue is modified to read the __stack_chk_guard global and insert it
onto the stack.
* The epilogue is modified to read the stored guard from the stack and compare
it to the original __stack_chk_guard value. If they differ, then the
__stack_chk_fail() function is called.
* The stack protector needs to be first on the stack (after the parameters) to
catch any stack-smashing activities.
Front-end support will follow after a round of beta testing.
llvm-svn: 58673
|