Richard Smith
4baaa5ab52
DR616, and part of P0135R1: member access (or pointer-to-member access) on a
...
temporary produces an xvalue, not a prvalue. Support this by materializing the
temporary prior to performing the member access.
llvm-svn: 288563
2016-12-03 01:14:32 +00:00
Mehdi Amini
9670f847b8
[NFC] Header cleanup
...
Summary: Removed unused headers, replaced some headers with forward class declarations
Patch by: Eugene <claprix@yandex.ru>
Differential Revision: https://reviews.llvm.org/D20100
llvm-svn: 275882
2016-07-18 19:02:11 +00:00
Richard Smith
9f690bd80b
[coroutines] Creation of promise object, lookup of operator co_await, building
...
of await_* calls, and AST representation for same.
llvm-svn: 251387
2015-10-27 06:02:45 +00:00
Hans Wennborg
dcfba33481
Fix Clang-tidy modernize-use-nullptr warnings in source directories; other minor cleanups
...
Patch by Eugene Zelenko!
Differential Revision: http://reviews.llvm.org/D13406
llvm-svn: 249484
2015-10-06 23:40:43 +00:00
DeLesley Hutchins
dc0541f12f
Thread Safety Analysis: fix before/after checks so that they work on global
...
variables as well member variables.
llvm-svn: 248803
2015-09-29 15:25:51 +00:00
Richard Smith
dd55b95fb2
[modules] Fix thread safety analysis to cope with merging of FieldDecls across modules.
...
llvm-svn: 244714
2015-08-12 02:17:52 +00:00
Benjamin Kramer
66a97ee957
Hide away implementation details of the ThreadSafetyAnalysis in anonymous namespaces
...
NFC.
llvm-svn: 231653
2015-03-09 14:19:54 +00:00
Chandler Carruth
0d9593ddec
[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py
...
Sorry for the noise, I managed to miss a bunch of recent regressions of
include orderings here. This should actually sort all the includes for
Clang. Again, no functionality changed, this is just a mechanical
cleanup that I try to run periodically to keep the #include lines as
regular as possible across the project.
llvm-svn: 225979
2015-01-14 11:29:14 +00:00
DeLesley Hutchins
4e38f100b5
Thread Safety Analysis: major update to thread safety TIL.
...
Numerous changes, including:
* Changed the way variables and instructions are handled in basic blocks to
be more efficient.
* Eliminated SExprRef.
* Simplified futures.
* Fixed documentation.
* Compute dominator and post dominator trees.
llvm-svn: 217556
2014-09-10 22:12:52 +00:00
DeLesley Hutchins
4266522ab9
Thread safety analysis: Add support for negative requirements, which are
...
capability expressions of the form !expr, and denote a capability that must
not be held.
llvm-svn: 214725
2014-08-04 16:10:59 +00:00
DeLesley Hutchins
ea1f83385f
Thread Safety Analysis: Replace the old and broken SExpr with the new
...
til::SExpr. This is a large patch, with many small changes to pretty printing
and expression lowering to make the new SExpr representation equivalent in
functionality to the old.
llvm-svn: 214089
2014-07-28 15:57:27 +00:00
DeLesley Hutchins
b603192124
Thread Safety Analysis: implement review suggestions from Aaron Ballman.
...
llvm-svn: 209847
2014-05-29 21:24:16 +00:00
DeLesley Hutchins
44be81b5a9
Thread Safety Analysis: update TIL traversal mechanism to allow arbitrary
...
local contexts. Also includes some minor refactoring.
llvm-svn: 209774
2014-05-28 21:28:13 +00:00
DeLesley Hutchins
f4b5e7c60f
Thread Safety Analysis: add new node types to thread safety TIL.
...
This fills in a few missing gaps in functionality.
llvm-svn: 208830
2014-05-15 00:50:36 +00:00
Benjamin Kramer
a7bcab75d2
ThreadSafetyAnalysis: Don't crash when trying to analyze objc methods.
...
The thread safety analysis isn't very useful in ObjC (you can't annotate
ObjC classes or methods) but we can still analyze the actual code and
show violations in usage of C/C++ functions.
Fixes PR19541, which does not use thread safety attributes but crashes
with -Weverything.
llvm-svn: 208436
2014-05-09 17:08:01 +00:00
Aaron Ballman
8e8026d5b3
Replacing a naked pointer with a unique_ptr. No functional changes intended.
...
llvm-svn: 206986
2014-04-23 14:26:59 +00:00
Aaron Ballman
bf58a6a892
Updated to be a bit more const friendly. Also switched the linkage to be static since this function is file-local. No functional changes intended.
...
llvm-svn: 206982
2014-04-23 13:58:21 +00:00
DeLesley Hutchins
f1a311653a
Thread safety analysis: add array operations to SExpr.
...
llvm-svn: 206907
2014-04-22 17:31:23 +00:00
DeLesley Hutchins
7834001496
Thread safety analysis: fix warning.
...
llvm-svn: 206899
2014-04-22 14:51:04 +00:00
DeLesley Hutchins
f8b412adbb
Thread safety analysis: misc updates to SExpr handling. Fix to minimal SSA,
...
function parameters, and compound assignment.
llvm-svn: 206827
2014-04-21 23:18:18 +00:00
DeLesley Hutchins
a9db0019a2
Thread Safety Analysis: Convert to minimal SSA.
...
llvm-svn: 206681
2014-04-19 03:54:41 +00:00
DeLesley Hutchins
ae497deddf
Thread Safety Analysis: Update SSA pass to handle loops.
...
llvm-svn: 206676
2014-04-19 00:35:54 +00:00
Aaron Ballman
ed5aced64e
Since the object is new'ed in the enterCFG function, now deleting in the exitCFG function instead of the destructor to ensure proper pairing. This allows reuse of the builder without creating a memory leak.
...
llvm-svn: 206471
2014-04-17 15:23:50 +00:00
DeLesley Hutchins
aab9aff058
Thread Safety Analysis: rewrite SSA pass to use the new SExpr and CFG
...
traversal system. The new pass is still undergoing testing; no change in
functionality.
llvm-svn: 206338
2014-04-15 23:23:19 +00:00
DeLesley Hutchins
7e615c2f65
Thread Safety Analysis: reorganized SExpr header files. No change in
...
functionality.
llvm-svn: 205936
2014-04-09 22:39:43 +00:00
Aaron Ballman
28347a72c9
Thread Safety Analysis: now with less includes. No functional changes.
...
llvm-svn: 205929
2014-04-09 21:12:04 +00:00
Aaron Ballman
3f993c1320
Thread Safety Analysis: some minor cleanups to the latest thread safety changes. No functional changes intended.
...
* Adds an iterator_range interface to CallExpr to get the arguments
* Modifies SExpr such that it must be allocated in the Arena, and cannot be deleted
* Minor const-correctness and nullptr updates
* Adds some operator!= implementations to complement operator==
* Removes unused functionality
llvm-svn: 205915
2014-04-09 17:45:44 +00:00
DeLesley Hutchins
f7813c56b4
Thread Safety Analysis. Misc fixes to SExpr code, responding to code review
...
by Aaron Ballman.
llvm-svn: 205809
2014-04-08 22:21:22 +00:00
DeLesley Hutchins
11bb308739
Thread Safety Analysis: various fixes to new SExpr code.
...
Implemented ownership policy, updated to use nullptr, const-cleanup.
llvm-svn: 205745
2014-04-07 22:56:24 +00:00
DeLesley Hutchins
b2213910de
Thread Safety Analysis: update to internal SExpr handling.
...
This patch is the first part of a significant refactoring that seeks to restore
sanity to way thread safety analysis deals with capability expressions. The
current patch merely provides an outline of the structure of the new system.
It's not yet connected to the actual analysis, so there's no change in
functionality.
llvm-svn: 205728
2014-04-07 18:09:54 +00:00