#
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
|