Revision tags: llvmorg-3.1.0 |
|
#
3d6311d5 |
| 08-May-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
add -fbounds-checking option. When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend.
OK'ed by Chad; thanks for the review.
llvm-svn: 1564
add -fbounds-checking option. When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend.
OK'ed by Chad; thanks for the review.
llvm-svn: 156431
show more ...
|
Revision tags: llvmorg-3.1.0-rc3 |
|
#
74a3868d |
| 04-May-2012 |
Alexey Samsonov <samsonov@google.com> |
This patch adds a new Clang compiler flag "-gline-tables-only". It reduces the amount of emitted debug information: 1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram, DW_TAG_in
This patch adds a new Clang compiler flag "-gline-tables-only". It reduces the amount of emitted debug information: 1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram, DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only. 2) .debug_str contains only function names. 3) No debug data for types/namespaces/variables is emitted. 4) The data in .debug_line is enough to produce valid stack traces with function names and line numbers.
Reviewed by Eric Christopher.
llvm-svn: 156160
show more ...
|
Revision tags: llvmorg-3.1.0-rc2 |
|
#
a3c85b86 |
| 01-May-2012 |
James Molloy <james.molloy@arm.com> |
Unify Options.td and CC1Options.td, in a first step towards unifying the serialization logic in Frontend and Driver.
Reviewed by Eric, Doug and Chandler, and here: http://llvm.org/reviews/r/7/
llvm
Unify Options.td and CC1Options.td, in a first step towards unifying the serialization logic in Frontend and Driver.
Reviewed by Eric, Doug and Chandler, and here: http://llvm.org/reviews/r/7/
llvm-svn: 155916
show more ...
|
#
486e1fe9 |
| 27-Apr-2012 |
Alexey Samsonov <samsonov@google.com> |
Use enum to set debug info size generated by Clang
llvm-svn: 155697
|
Revision tags: llvmorg-3.1.0-rc1 |
|
#
adfb842f |
| 13-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove the -cc1-level option "-pubnames-dump". Such things should stay out of the tree and use the tooling infrastructure.
llvm-svn: 154668
|
#
58464d0f |
| 09-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Revert r154321, pending more discussion.
llvm-svn: 154327
|
#
4ec2af2f |
| 09-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Add -fobjc-trace to emit a call before and after each Objective-C message send for hooking in code flow visualisation applications.
llvm-svn: 154321
|
#
c0c0455f |
| 08-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach Clang about PIE compilations. This is the first step of PR12380.
First, this patch cleans up the parsing of the PIC and PIE family of options in the driver. The existing logic failed to claim
Teach Clang about PIE compilations. This is the first step of PR12380.
First, this patch cleans up the parsing of the PIC and PIE family of options in the driver. The existing logic failed to claim arguments all over the place resulting in kludges that marked the options as unused. Instead actually walk all of the arguments and claim them properly.
We now treat -f{,no-}{pic,PIC,pie,PIE} as a single set, accepting the last one on the commandline. Previously there were lots of ordering bugs that could creep in due to the nature of the parsing. Let me know if folks would like weird things such as "-fPIE -fno-pic" to turn on PIE, but disable full PIC. This doesn't make any sense to me, but we could in theory support it.
Options that seem to have intentional "trump" status (-static, -mkernel, etc) continue to do so and are commented as such.
Next, a -pie-level flag is threaded into the frontend, rigged to a language option, and handled preprocessor, setting up the appropriate defines. We'll now have the correct defines when compiling with -fpie.
The one place outside of the preprocessor that was inspecting the PIC level (as opposed to the relocation model, which is set and handled separately, yay!) is in the GNU ObjC runtime. I changed it to exactly preserve existing behavior. If folks want to change its behavior in the face of PIE, they can do that in a separate patch.
Essentially the only functionality changed here is the preprocessor defines and bug-fixes to the argument management.
Tests have been updated and extended to test all of this a bit more thoroughly.
llvm-svn: 154291
show more ...
|
#
72eee39d |
| 28-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Enable retry exhausted without inlining by default.
llvm-svn: 153591
|
#
8b4140d7 |
| 27-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Move the emission of strict enum range metadata behind a flag (the same flag as GCC uses: -fstrict-enums). There is a *lot* of code making unwarranted assumptions about the underlying type of enums,
Move the emission of strict enum range metadata behind a flag (the same flag as GCC uses: -fstrict-enums). There is a *lot* of code making unwarranted assumptions about the underlying type of enums, and it doesn't seem entirely reasonable to eagerly break all of it.
Much more importantly, the current state of affairs is *very* good at optimizing based upon this information, which causes failures that are very distant from the actual enum. Before we push for enabling this by default, I think we need to implement -fcatch-undefined-behavior support for instrumenting and trapping whenever we store or load a value outside of the range. That way we can track down the misbehaving code very quickly.
I discussed this with Rafael, and currently the only important cases he is aware of are the bool range-based optimizations which are staying hard enabled. We've not seen any issue with those either, and they are much more important for performance.
llvm-svn: 153550
show more ...
|
#
5b3939fa |
| 27-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add an option to re-analyze a dead-end path without inlining.
The analyzer gives up path exploration under certain conditions. For example, when the same basic block has been visited more
[analyzer] Add an option to re-analyze a dead-end path without inlining.
The analyzer gives up path exploration under certain conditions. For example, when the same basic block has been visited more than 4 times. With inlining turned on, this could lead to decrease in code coverage. Specifically, if we give up inside the inlined function, the rest of parent's basic blocks will not get analyzed.
This commit introduces an option to enable re-run along the failed path, in which we do not inline the last inlined call site. This is done by enqueueing the node before the processing of the inlined call site with a special policy encoded in the state. The policy tells us not to inline the call site along the path.
This lead to ~10% increase in the number of paths analyzed. Even though we expected a much greater coverage improvement.
The option is turned off by default for now.
llvm-svn: 153534
show more ...
|
#
41ab2899 |
| 27-Mar-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a -cc1-level option -pubnames-dump, which simply dumps the list of identifiers that that 'public' names at the end of the translation unit, e.g., defined macros or identifiers with top-leve
Introduce a -cc1-level option -pubnames-dump, which simply dumps the list of identifiers that that 'public' names at the end of the translation unit, e.g., defined macros or identifiers with top-level names, in sorted order. Meant to support <rdar://problem/10921596>.
llvm-svn: 153522
show more ...
|
#
e6f5123e |
| 26-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Driver: Factor string vector push_back into a helper class and optimize it.
Due to lack of move semantics we would create a temporary std::string from the string literal, copy it into the vector and
Driver: Factor string vector push_back into a helper class and optimize it.
Due to lack of move semantics we would create a temporary std::string from the string literal, copy it into the vector and discard the temporary. This leads to massive code bloat, optimizing it saves 50k on i386-linux-Release+Asserts.
While there add a two-element overload for push_back, simplifying code a bit.
llvm-svn: 153441
show more ...
|
#
9c76d24f |
| 15-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[frontend] Fix how the frontend handles -fno-inline. AFAIK clang now matches the behavior of gcc with respect to the -fno-inline and -fno-inline-functions flags.
llvm-svn: 152861
|
#
883b2579 |
| 14-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[frontend] Add support for disabling the "inline" keyword using -fno-inline-functions.
This behaves much like -fno-inline in gcc, but based on a discussion with Daniel it was decided that -fno-inl
[frontend] Add support for disabling the "inline" keyword using -fno-inline-functions.
This behaves much like -fno-inline in gcc, but based on a discussion with Daniel it was decided that -fno-inline-functions should subsume -fno-inline. Please speak up if you object. The -fno-inline flag remains ignored. Final part of rdar://10972766
llvm-svn: 152754
show more ...
|
#
d6f716ab |
| 13-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[driver] Parse diagnostic args in the driver.
Previously, only diagnostics thrown by the cc1 process were actually honoring the diagnostic options given on the command line, like -Werror.
Reuse the
[driver] Parse diagnostic args in the driver.
Previously, only diagnostics thrown by the cc1 process were actually honoring the diagnostic options given on the command line, like -Werror.
Reuse the existing code in Frontend currently used for cc1, adjusting it to not interpret -Wl, linker flags as warnings.
Also fix a faulty test exposed by this change. It wasn't actually testing anything, and was giving this warning:
clang-3: warning: argument unused during compilation: '-verify'
Which -Werror didn't turn into an error because it was output by the driver, not the cc1 process, and diagnostic options weren't parsed by the driver. And you couldn't see the warning when running the test suite.
Fixes PR12181. Patch by Dylan Noblesmith <nobled@dreamwidth.org>.
llvm-svn: 152660
show more ...
|
#
394d07ea |
| 09-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add support for NoRedundancy inlining mode.
We do not reanalyze a function, which has already been analyzed as an inlined callee. As per PRELIMINARY testing, this gives over 50% run time
[analyzer] Add support for NoRedundancy inlining mode.
We do not reanalyze a function, which has already been analyzed as an inlined callee. As per PRELIMINARY testing, this gives over 50% run time reduction on some benchmarks without decreasing of the number of bugs found.
Turning the mode on by default.
llvm-svn: 152440
show more ...
|
#
7b93f636 |
| 09-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
[Basic] Rename LangOptions::NoInline to NoInlineDefine, to make things a bit more obvious.
llvm-svn: 152408
|
#
0af3e06f |
| 08-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Rework inlining related command line options. - Remove -analyzer-inline-call. - Add -analyzer-ipa=[none|inlining] - Add -analyzer-inlining-mode to allow experimentation for different pe
[analyzer] Rework inlining related command line options. - Remove -analyzer-inline-call. - Add -analyzer-ipa=[none|inlining] - Add -analyzer-inlining-mode to allow experimentation for different performance tuning methods.
llvm-svn: 152351
show more ...
|
#
f2a23a99 |
| 07-Mar-2012 |
Bob Wilson <bob.wilson@apple.com> |
Workaround module test failures by removing the version info from module hashes.
PR12196: The module hash strings are not actually hashing the compiler version string; the entire version string is b
Workaround module test failures by removing the version info from module hashes.
PR12196: The module hash strings are not actually hashing the compiler version string; the entire version string is being included in the hash. Depending on the module cache directory name, that can lead to failures where the path names become too long. As a temporary workaround, just remove the version string from the hash.
llvm-svn: 152266
show more ...
|
#
64d6be97 |
| 06-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[driver] What was implemented in r152130 was actually -fno-inline-functions, not -fno-inline. Part of rdar://10972766
llvm-svn: 152145
|
#
f7639e1b |
| 06-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add new code migrator support for migrating existing Objective-C code to use the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.
This introduces a new library, libEdit, which provides
Add new code migrator support for migrating existing Objective-C code to use the new Objective-C NSArray/NSDictionary/NSNumber literal syntax.
This introduces a new library, libEdit, which provides a new way to support migration of code that improves on the original ARC migrator. We now believe that most of its functionality can be refactored into the existing libraries, and thus this new library may shortly disappear.
llvm-svn: 152141
show more ...
|
#
80603189 |
| 06-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[driver] Add support for -fno-inline. rdar://10972766
llvm-svn: 152130
|
#
26508772 |
| 02-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Bound the size of the functions being inlined + provide command line options for inlining tuning.
This adds the option for stack depth bound as well as function size bound.
+ minor doxy
[analyzer] Bound the size of the functions being inlined + provide command line options for inlining tuning.
This adds the option for stack depth bound as well as function size bound.
+ minor doxygenification
llvm-svn: 151930
show more ...
|
#
d5c30274 |
| 01-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Turn inlining on by default for better testing exposure.
Fix a test, which was most likely an unintended recursive call.
llvm-svn: 151848
|