| #
bcc06085 |
| 07-Sep-2014 |
Hal Finkel <[email protected]> |
Add __builtin_assume and __builtin_assume_aligned using @llvm.assume.
This makes use of the recently-added @llvm.assume intrinsic to implement a __builtin_assume(bool) intrinsic (to provide addition
Add __builtin_assume and __builtin_assume_aligned using @llvm.assume.
This makes use of the recently-added @llvm.assume intrinsic to implement a __builtin_assume(bool) intrinsic (to provide additional information to the optimizer). This hooks up __assume in MS-compatibility mode to mirror __builtin_assume (the semantics have been intentionally kept compatible), and implements GCC's __builtin_assume_aligned as assume((p - o) & mask == 0). LLVM now contains special logic to deal with assumptions of this form.
llvm-svn: 217349
show more ...
|
|
Revision tags: llvmorg-3.5.0 |
|
| #
cbe875a5 |
| 28-Aug-2014 |
Alexey Samsonov <[email protected]> |
Kill one of EmitCallArgs overloads. NFC.
llvm-svn: 216635
|
|
Revision tags: llvmorg-3.5.0-rc4 |
|
| #
5fc8fc2d |
| 27-Aug-2014 |
Craig Topper <[email protected]> |
Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created.
llvm-svn: 216528
|
| #
70b9c01b |
| 21-Aug-2014 |
Alexey Samsonov <[email protected]> |
Pass expressions instead of argument ranges to EmitCall/EmitCXXConstructorCall.
Summary: This is a first small step towards passing generic "Expr" instead of ArgBeg/ArgEnd pair into EmitCallArgs() f
Pass expressions instead of argument ranges to EmitCall/EmitCXXConstructorCall.
Summary: This is a first small step towards passing generic "Expr" instead of ArgBeg/ArgEnd pair into EmitCallArgs() family of methods. Having "Expr" will allow us to get the corresponding FunctionDecl and its ParmVarDecls, thus allowing us to alter CodeGen depending on the function/parameter attributes.
No functionality change.
Test Plan: regression test suite
Reviewers: rnk
Reviewed By: rnk
Subscribers: aemerson, cfe-commits
Differential Revision: http://reviews.llvm.org/D4915
llvm-svn: 216214
show more ...
|
|
Revision tags: llvmorg-3.5.0-rc3 |
|
| #
91b2fa2a |
| 19-Aug-2014 |
Fariborz Jahanian <[email protected]> |
ext_vector IRGen. Patch to allow indexing into ext_vector_type's 'hi/lo' components when used as lvalue. rdar://18031917 pr20697
llvm-svn: 215991
|
|
Revision tags: llvmorg-3.5.0-rc2 |
|
| #
4b8de11c |
| 01-Aug-2014 |
Alexey Samsonov <[email protected]> |
[Sanitizer] Introduce SanitizerMetadata class.
It is responsible for generating metadata consumed by sanitizer instrumentation passes in the backend. Move several methods from CodeGenModule to Sanit
[Sanitizer] Introduce SanitizerMetadata class.
It is responsible for generating metadata consumed by sanitizer instrumentation passes in the backend. Move several methods from CodeGenModule to SanitizerMetadata. For now the class is stateless, but soon it won't be the case.
Instead of creating globals providing source-level information to ASan, we will create metadata nodes/strings which will be turned into actual global variables in the backend (if needed).
No functionality change.
llvm-svn: 214564
show more ...
|
| #
b3af3900 |
| 29-Jul-2014 |
Tobias Grosser <[email protected]> |
Revert "Emit column debug information for loads"
This broke the following gdb tests:
gdb.base__annota1.exp gdb.base__consecutive.exp gdb.python__py-symtab.exp gdb.reverse__consecutive-precsave.exp
Revert "Emit column debug information for loads"
This broke the following gdb tests:
gdb.base__annota1.exp gdb.base__consecutive.exp gdb.python__py-symtab.exp gdb.reverse__consecutive-precsave.exp gdb.reverse__consecutive-reverse.exp
I will look into this.
This reverts commit 214162.
llvm-svn: 214163
show more ...
|
| #
01b923d5 |
| 29-Jul-2014 |
Tobias Grosser <[email protected]> |
Emit column debug information for loads
This allows us to give more precise diagnostics.
Diego kindly tested the impact on debug info size: "The increase on average debug sizes is 0.1%. The total f
Emit column debug information for loads
This allows us to give more precise diagnostics.
Diego kindly tested the impact on debug info size: "The increase on average debug sizes is 0.1%. The total file size increase is ~0%."
llvm-svn: 214162
show more ...
|
|
Revision tags: llvmorg-3.5.0-rc1 |
|
| #
6e24a465 |
| 21-Jul-2014 |
Arnaud A. de Grandmaison <[email protected]> |
Revert "Emit lifetime.start / lifetime.end markers for unnamed temporary objects."
This commit did break the sanitizer-x86 bot. Revert it while investigating.
llvm-svn: 213579
|
| #
17a83cf4 |
| 21-Jul-2014 |
Arnaud A. de Grandmaison <[email protected]> |
Emit lifetime.start / lifetime.end markers for unnamed temporary objects.
This will give more information to the optimizers so that they can reuse stack slots.
llvm-svn: 213576
|
| #
32f59d8e |
| 18-Jul-2014 |
Alexey Samsonov <[email protected]> |
[UBsan] Skip -fsanitize=vptr instrumentations when the pointer value is null.
Otherwise -fsanitize=vptr causes the program to crash when it downcasts a null pointer.
Reviewed in http://reviews.llvm
[UBsan] Skip -fsanitize=vptr instrumentations when the pointer value is null.
Otherwise -fsanitize=vptr causes the program to crash when it downcasts a null pointer.
Reviewed in http://reviews.llvm.org/D4412. Patch by Byoungyoung Lee!
llvm-svn: 213393
show more ...
|
| #
6c124143 |
| 18-Jul-2014 |
Alexey Samsonov <[email protected]> |
Make sure globals created by UBSan are not instrumented by ASan.
Summary: This change adds description of globals created by UBSan instrumentation (UBSan handlers, type descriptors, filenames) to ll
Make sure globals created by UBSan are not instrumented by ASan.
Summary: This change adds description of globals created by UBSan instrumentation (UBSan handlers, type descriptors, filenames) to llvm.asan.globals metadata, effectively "blacklisting" them. This can dramatically decrease the data section in binaries built with UBSan+ASan, as UBSan tends to create a lot of handlers, and ASan instrumentation increases the global size to at least 64 bytes.
Test Plan: clang regression test suite
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits, byoungyoung, kcc
Differential Revision: http://reviews.llvm.org/D4575
llvm-svn: 213392
show more ...
|
| #
18bc4fff |
| 18-Jul-2014 |
Arnaud A. de Grandmaison <[email protected]> |
Revert "Emit lifetime.start / lifetime.end markers for unnamed temporary objects."
This reverts commit dbf785a6432f78a8ec229665876647c4cc610d3d, while I qm investigating a buildbot failure.
llvm-sv
Revert "Emit lifetime.start / lifetime.end markers for unnamed temporary objects."
This reverts commit dbf785a6432f78a8ec229665876647c4cc610d3d, while I qm investigating a buildbot failure.
llvm-svn: 213380
show more ...
|
| #
1be89f49 |
| 18-Jul-2014 |
Arnaud A. de Grandmaison <[email protected]> |
Emit lifetime.start / lifetime.end markers for unnamed temporary objects.
This will give more information to the optimizers so that they can reuse stack slots.
llvm-svn: 213379
|
| #
24cad993 |
| 17-Jul-2014 |
Alexey Samsonov <[email protected]> |
[UBSan] Add !nosanitize metadata to the code generated by UBSan.
This is used to mark the instructions emitted by Clang to implement variety of UBSan checks. Generally, we don't want to instrument t
[UBSan] Add !nosanitize metadata to the code generated by UBSan.
This is used to mark the instructions emitted by Clang to implement variety of UBSan checks. Generally, we don't want to instrument these instructions with another sanitizers (like ASan).
Reviewed in http://reviews.llvm.org/D4544
llvm-svn: 213291
show more ...
|
| #
84856012 |
| 10-Jul-2014 |
Alexey Samsonov <[email protected]> |
[UBSan] Introduce type-based blacklisting.
Teach UBSan vptr checker to ignore technically invalud down-casts on blacklisted types.
Based on http://reviews.llvm.org/D4407 by Byoungyoung Lee!
llvm-s
[UBSan] Introduce type-based blacklisting.
Teach UBSan vptr checker to ignore technically invalud down-casts on blacklisted types.
Based on http://reviews.llvm.org/D4407 by Byoungyoung Lee!
llvm-svn: 212770
show more ...
|
| #
ac4afe49 |
| 07-Jul-2014 |
Alexey Samsonov <[email protected]> |
[Sanitizer] Remove brittle cache variable and slightly simplify blacklisting code. Now CodeGenFunction is responsible for looking at sanitizer blacklist (in CodeGenFunction::StartFunction) and turnin
[Sanitizer] Remove brittle cache variable and slightly simplify blacklisting code. Now CodeGenFunction is responsible for looking at sanitizer blacklist (in CodeGenFunction::StartFunction) and turning off instrumentation, if necessary.
No functionality change.
llvm-svn: 212501
show more ...
|
| #
f3076ff2 |
| 20-Jun-2014 |
Richard Smith <[email protected]> |
Don't crash when emitting a glvalue conditional where one arm is a throw-expression. Based on a patch by Marius Wachtler!
llvm-svn: 211388
|
| #
3aa4fb3b |
| 12-Jun-2014 |
Craig Topper <[email protected]> |
Use StringRef to simplify code. No functional change.
llvm-svn: 210751
|
| #
e4753504 |
| 12-Jun-2014 |
Craig Topper <[email protected]> |
Use ArrayRef in some function parameters instead of a pointer and count. No functional change.
llvm-svn: 210750
|
| #
4b56692e |
| 09-Jun-2014 |
Craig Topper <[email protected]> |
[C++11] Use 'nullptr'.
llvm-svn: 210448
|
| #
8f4f1cf7 |
| 05-Jun-2014 |
Alexey Samsonov <[email protected]> |
Mangle predefined string constants names to merge them at link-time
Summary: This change generalizes the code used to create global LLVM variables referencing predefined strings (e.g. __FUNCTION__):
Mangle predefined string constants names to merge them at link-time
Summary: This change generalizes the code used to create global LLVM variables referencing predefined strings (e.g. __FUNCTION__): now it just calls GetAddrOfConstantStringFromLiteral method. As a result, global variables for these predefined strings may get mangled names and linkonce_odr linkage. Fix the test accordingly.
Test Plan: clang regression tests
Reviewers: majnemer
Reviewed By: majnemer
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4023
llvm-svn: 210284
show more ...
|
| #
2e31e4e4 |
| 05-Jun-2014 |
Renato Golin <[email protected]> |
Add pointer types to global named register
This patch adds support for pointer types in global named registers variables. It'll be lowered as a pair of read/write_register and inttoptr/ptrtoint call
Add pointer types to global named register
This patch adds support for pointer types in global named registers variables. It'll be lowered as a pair of read/write_register and inttoptr/ptrtoint calls. Also adds some early checks on types on SemaDecl to avoid the assert.
Tests changed accordingly. (PR19837)
llvm-svn: 210274
show more ...
|
| #
5659c866 |
| 04-Jun-2014 |
Richard Smith <[email protected]> |
Formatting cleanup.
llvm-svn: 210219
|
| #
dd59775f |
| 31-May-2014 |
Michael J. Spencer <[email protected]> |
[CodeGen] Don't cast and use SizeTy instead of Int32Ty when constructing {extract,insert} vector element instructions.
llvm-svn: 209942
|