History log of /llvm-project/llvm/lib/CodeGen/StackProtector.cpp (Results 126 – 150 of 198)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 56e246b1 20-Aug-2013 Michael Gottesman <mgottesman@apple.com>

[stackprotector] Removed stale TODO.

llvm-svn: 188768


# 5e57068b 20-Aug-2013 Michael Gottesman <mgottesman@apple.com>

[stackprotector] Added support for emitting the llvm intrinsic stack protector check.

rdar://13935163

llvm-svn: 188766


# 8afcf3a4 09-Aug-2013 Michael Gottesman <mgottesman@apple.com>

[stackprotector] Simplify SP Pass so that we emit different fail basic blocks for each fail condition.

This patch decouples the stack protector pass so that we can support stack
protector implementa

[stackprotector] Simplify SP Pass so that we emit different fail basic blocks for each fail condition.

This patch decouples the stack protector pass so that we can support stack
protector implementations that do not use the IR level generated stack protector
fail basic block.

No codesize increase is caused by this change since the MI level tail merge pass
properly merges together the fail condition blocks (see the updated test).

llvm-svn: 188105

show more ...


# a6188f9f 22-Jul-2013 Michael Gottesman <mgottesman@apple.com>

[stackprotector] Refactored ssp prologue creation code into its own helper function.

No functionality change.

rdar://13935163

llvm-svn: 186868


# c02a0aab 22-Jul-2013 Bill Wendling <isanbard@gmail.com>

Recommit r186217 with testcase fix:

Use the function attributes to pass along the stack protector buffer size.

Now that we have robust function attributes, don't use a command line option to
spe

Recommit r186217 with testcase fix:

Use the function attributes to pass along the stack protector buffer size.

Now that we have robust function attributes, don't use a command line option to
specify the stack protecto buffer size.

llvm-svn: 186863

show more ...


# 86e60a36 13-Jul-2013 Chandler Carruth <chandlerc@gmail.com>

Revert commit r186217 -- this is breaking bots:

http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/4328

Original commit log:
Use the function attributes to

Revert commit r186217 -- this is breaking bots:

http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/4328

Original commit log:
Use the function attributes to pass along the stack protector buffer
size.

llvm-svn: 186234

show more ...


# 4f73ff47 12-Jul-2013 Bill Wendling <isanbard@gmail.com>

Use the function attributes to pass along the stack protector buffer size.

Now that we have robust function attributes, don't use a command line option to
specify the stack protecto buffer size.

ll

Use the function attributes to pass along the stack protector buffer size.

Now that we have robust function attributes, don't use a command line option to
specify the stack protecto buffer size.

llvm-svn: 186217

show more ...


Revision tags: llvmorg-3.3.1-rc1
# afc1036f 19-Jun-2013 Bill Wendling <isanbard@gmail.com>

Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.

llvm-svn: 184349


# aad6c244 07-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com>

Support OpenBSD's native frame protection conventions.

OpenBSD's stack smashing protection differs slightly from other
platforms:

1. The smash handler function is "__stack_smash_handler(const cha

Support OpenBSD's native frame protection conventions.

OpenBSD's stack smashing protection differs slightly from other
platforms:

1. The smash handler function is "__stack_smash_handler(const char
*funcname)" instead of "__stack_chk_fail(void)".

2. There's a hidden "long __guard_local" object that gets linked
into each executable and DSO.

Patch by Matthew Dempsky.

llvm-svn: 183533

show more ...


Revision tags: llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1
# a69d0aaa 05-Mar-2013 Bill Wendling <isanbard@gmail.com>

Remove unused #includes.

llvm-svn: 176467


# 7c8f96a9 23-Jan-2013 Bill Wendling <isanbard@gmail.com>

Add the heuristic to differentiate SSPStrong from SSPRequired.

The requirements of the strong heuristic are:

* A Protector is required for functions which contain an array, regardless of
type or

Add the heuristic to differentiate SSPStrong from SSPRequired.

The requirements of the strong heuristic are:

* A Protector is required for functions which contain an array, regardless of
type or length.

* A Protector is required for functions which contain a structure/union which
contains an array, regardless of type or length. Note, there is no limit to
the depth of nesting.

* A protector is required when the address of a local variable (i.e., stack
based variable) is exposed. (E.g., such as through a local whose address is
taken as part of the RHS of an assignment or a local whose address is taken as
part of a function argument.)

llvm-svn: 173231

show more ...


# d154e283 23-Jan-2013 Bill Wendling <isanbard@gmail.com>

Add the IR attribute 'sspstrong'.

SSPStrong applies a heuristic to insert stack protectors in these situations:

* A Protector is required for functions which contain an array, regardless of
type

Add the IR attribute 'sspstrong'.

SSPStrong applies a heuristic to insert stack protectors in these situations:

* A Protector is required for functions which contain an array, regardless of
type or length.

* A Protector is required for functions which contain a structure/union which
contains an array, regardless of type or length. Note, there is no limit to
the depth of nesting.

* A protector is required when the address of a local variable (i.e., stack
based variable) is exposed. (E.g., such as through a local whose address is
taken as part of the RHS of an assignment or a local whose address is taken as
part of a function argument.)

This patch implements the SSPString attribute to be equivalent to
SSPRequired. This will change in a subsequent patch.

llvm-svn: 173230

show more ...


# 56b31bd9 11-Jan-2013 Benjamin Kramer <benny.kra@googlemail.com>

Split TargetLowering into a CodeGen and a SelectionDAG part.

This fixes some of the cycles between libCodeGen and libSelectionDAG. It's still
a complete mess but as long as the edges consist of virt

Split TargetLowering into a CodeGen and a SelectionDAG part.

This fixes some of the cycles between libCodeGen and libSelectionDAG. It's still
a complete mess but as long as the edges consist of virtual call it doesn't
cause breakage. BasicTTI did static calls and thus broke some build
configurations.

llvm-svn: 172246

show more ...


# 9fb823bb 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com>

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

llvm-svn: 171366

show more ...


# 698e84fc 30-Dec-2012 Bill Wendling <isanbard@gmail.com>

Remove the Function::getFnAttributes method in favor of using the AttributeSet
directly.

This is in preparation for removing the use of the 'Attribute' class as a
collection of attributes. That will

Remove the Function::getFnAttributes method in favor of using the AttributeSet
directly.

This is in preparation for removing the use of the 'Attribute' class as a
collection of attributes. That will shift to the AttributeSet class instead.

llvm-svn: 171253

show more ...


Revision tags: llvmorg-3.2.0
# 3d7b0b8a 19-Dec-2012 Bill Wendling <isanbard@gmail.com>

Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

llvm-svn: 170502


Revision tags: llvmorg-3.2.0-rc3
# ed0881b2 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com>

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

llvm-svn: 169131

show more ...


Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1
# c9b22d73 09-Oct-2012 Bill Wendling <isanbard@gmail.com>

Create enums for the different attributes.

We use the enums to query whether an Attributes object has that attribute. The
opaque layer is responsible for knowing where that specific attribute is sto

Create enums for the different attributes.

We use the enums to query whether an Attributes object has that attribute. The
opaque layer is responsible for knowing where that specific attribute is stored.

llvm-svn: 165488

show more ...


# cdfe20b9 08-Oct-2012 Micah Villmow <villmow@gmail.com>

Move TargetData to DataLayout.

llvm-svn: 165402


# 863bab68 26-Sep-2012 Bill Wendling <isanbard@gmail.com>

Remove the `hasFnAttr' method from Function.

The hasFnAttr method has been replaced by querying the Attributes explicitly. No
intended functionality change.

llvm-svn: 164725


# d269bd8c 21-Aug-2012 Chad Rosier <mcrosier@apple.com>

Add support for the --param ssp-buffer-size= driver option.
PR9673

llvm-svn: 162284


# bfb9b759 17-Aug-2012 Bill Wendling <isanbard@gmail.com>

Implement stack protectors for structures with character arrays in them.
<rdar://problem/10545247>

llvm-svn: 162131


# 49aeb5cc 13-Aug-2012 Bill Wendling <isanbard@gmail.com>

Whitespace cleanup.

llvm-svn: 161788


# 61396b81 07-Aug-2012 Bill Wendling <isanbard@gmail.com>

For non-Darwin platforms, we want to generate stack protectors only for
character arrays. This is in line with what GCC does.
<rdar://problem/10529227>

llvm-svn: 161446


Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1
# ebb44646 23-Nov-2011 Bob Wilson <bob.wilson@apple.com>

Enable stack protectors for all arrays, not just char arrays. rdar://5875909
Patch by Bill Wendling.

llvm-svn: 145097


12345678