#
6d8472b9 |
| 06-Mar-2009 |
Bill Wendling <isanbard@gmail.com> |
When we split a basic block, there's a default branch to the newly created BB. Delete this default branch, because we're going to generate our own.
llvm-svn: 66234
|
Revision tags: llvmorg-2.5.0 |
|
#
dc020f9c |
| 12-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getABITypeSize to getTypePaddedSize, as suggested by Chris.
llvm-svn: 62099
|
#
13020d22 |
| 18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename stackprotector_create intrinsic to stackprotector.
llvm-svn: 59519
|
#
7235002b |
| 18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove the stackprotector_check intrinsic. Use a volatile load instead.
llvm-svn: 59504
|
#
eeb04159 |
| 18-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Use "moveAfter" instead of "remove/insert" of a basic block. - Use less indentation in coding. - Shorten description. - Update comments. - Move code around
llvm-svn: 59496
|
#
ccb67a3d |
| 13-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement stack protectors as function attributes: "ssp" and "sspreq".
llvm-svn: 59202
|
#
cfa3e287 |
| 10-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Small simplification. Use the iterator already present as the insertion point.
llvm-svn: 59008
|
#
747f59f0 |
| 10-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Make sure that we don't over-increment the iterator when going through the basic blocks. - Minor code clean-up.
llvm-svn: 59002
|
Revision tags: llvmorg-2.4.0 |
|
#
eb4268d7 |
| 07-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Modify the stack protector algorithm so that the stack slot is allocated in LLVM IR code and not in the selection DAG ISel. This is a cleaner solution.
- Fix the heuristic for determining if pro
- Modify the stack protector algorithm so that the stack slot is allocated in 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
show more ...
|
#
87d0746e |
| 06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove unneeded header file.
llvm-svn: 58823
|
#
a0826e18 |
| 06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Don't build a vector of returns. Just modify the Function in the loop.
llvm-svn: 58822
|
#
d939a7b3 |
| 06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
The size limit is for individual arrays. So if any array has more than 8 bytes in it, then emit stack protectors.
llvm-svn: 58819
|
#
b3f7a398 |
| 06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}. - Get rid of "HasStackProtector" in MachineFrameInfo. - Modify intrinsics to tell which are doing what with memory.
llvm
- Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}. - Get rid of "HasStackProtector" in MachineFrameInfo. - Modify intrinsics to tell which are doing what with memory.
llvm-svn: 58799
show more ...
|
#
43de293d |
| 06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Adjust the stack protector heuristic to care about only arrays or calls to "alloca".
llvm-svn: 58792
|
#
d970ea3e |
| 06-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Implement the stack protector stack accesses via intrinsics:
- stackprotector_prologue creates a stack object and stores the guard there.
- stackprotector_epilogue reads the stack guard from the st
Implement the stack protector stack accesses via intrinsics:
- 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
show more ...
|
#
db045a30 |
| 05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove dead variable.
llvm-svn: 58741
|
#
f1b4e262 |
| 05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Simplify the allocated size calculation.
llvm-svn: 58740
|
#
75e38fed |
| 05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment
llvm-svn: 58739
|
#
782e8346 |
| 05-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Some code simplification. It now doesn't generate a prologue if the epilogue isn't going to be generated.
llvm-svn: 58734
|
#
d31fc54f |
| 04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Small simplification of the stack guard type.
llvm-svn: 58728
|
#
2f40956c |
| 04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to "getOrInsertFunction" in that it either adds a new declaration of the global and returns it, or returns the current
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to "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
show more ...
|
#
64adc71e |
| 04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Update in response to feedback from Chris:
- 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
Update in response to feedback from Chris:
- 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
show more ...
|
#
05d8417f |
| 04-Nov-2008 |
Bill Wendling <isanbard@gmail.com> |
Initial checkin for stack protectors. Here's what it does:
* The prologue is modified to read the __stack_chk_guard global and insert it onto the stack.
* The epilogue is modified to read the sto
Initial checkin for stack protectors. Here's what it does:
* 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
show more ...
|