History log of /llvm-project/llvm/lib/CodeGen/StackProtector.cpp (Results 176 – 198 of 198)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


12345678