Aaron Ballman
9371dd2287
[C++11] Replacing BlockDecl iterators capture_begin() and capture_end() with iterator_range captures(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203958
2014-03-14 18:34:04 +00:00
Timur Iskhodzhanov
f1749427c5
Fix PR19104: Incorrect handling of non-virtual calls of virtual methods
...
Reviewed at http://llvm-reviews.chandlerc.com/D3054
llvm-svn: 203949
2014-03-14 17:43:37 +00:00
Aaron Ballman
535bbcccb1
[C++11] Replacing DeclStmt iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203947
2014-03-14 17:01:24 +00:00
Aaron Ballman
b8733c5ba4
[C++11] Replacing FunctionTemplateDecl iterators spec_begin() and spec_end() with iterator_range specializations(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203938
2014-03-14 16:05:56 +00:00
Fariborz Jahanian
a5a469efbd
Objective-C++ IRGen. Due to change to AST for initialization of c++11’s
...
data members by addition of CXXDefaultInitExpr node to the initializer expression,
it has broken treatment of arc code for such initializations. Reviewed by John McCall.
// rdar://16299964
llvm-svn: 203935
2014-03-14 15:40:54 +00:00
Aaron Ballman
d85eff49a3
[C++11] Replacing ObjCCategoryDecl iterators propimpl_begin() and propimpl_end() with iterator_range property_impls(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203930
2014-03-14 15:02:45 +00:00
Aaron Ballman
19a417699f
[C++11] Replacing ObjCCategoryDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203922
2014-03-14 12:55:57 +00:00
Christian Pirker
f5164229f3
AArch64_be varargs processing for ARM ABI
...
llvm-svn: 203917
2014-03-14 11:51:06 +00:00
Aaron Ballman
0f6e64d505
[C++11] Replacing ObjCProtocolDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203863
2014-03-13 22:58:06 +00:00
Aaron Ballman
a9f49e394c
[C++11] Replacing ObjCInterfaceDecl iterators all_referenced_protocol_begin() and all_referenced_protocol_end() with iterator_range all_referenced_protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203848
2014-03-13 20:55:22 +00:00
Aaron Ballman
a49c5064a1
[C++11] Replacing ObjCInterfaceDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
Drive-by fixing some incorrect types where a for loop would be improperly using ObjCInterfaceDecl::protocol_iterator. No functional changes in these cases.
llvm-svn: 203842
2014-03-13 20:29:09 +00:00
Aaron Ballman
e8a7dc9889
[C++11] Replacing ObjCContainerDecl iterators classmeth_begin() and classmeth_end() with iterator_range class_methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203840
2014-03-13 20:11:06 +00:00
Aaron Ballman
f26acce6f7
[C++11] Replacing ObjCContainerDecl iterators instmeth_begin() and instmeth_end() with iterator_range instance_methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203839
2014-03-13 19:50:17 +00:00
Tim Northover
514fc61c09
CodeGen: use symbolic enumerators for memory order
...
It makes the code clearer and less error-prone to use our (already
known) special values for the various memory order cases.
llvm-svn: 203838
2014-03-13 19:25:52 +00:00
Tim Northover
9c177223bc
CodeGen: make use of weaker failure orders on cmpxchg.
...
This makes Clang take advantage of the recent IR addition of a
"failure" memory ordering requirement. As with the "success" ordering,
we try to emit just a single version if the expression is constant,
but fall back to runtime detection (to allow optimisation across
function-call boundaries).
rdar://problem/15996804
llvm-svn: 203837
2014-03-13 19:25:48 +00:00
Aaron Ballman
d174edffa0
Renaming the recently-created (r203830) props() range API to properties() for clarity.
...
llvm-svn: 203835
2014-03-13 19:11:50 +00:00
Aaron Ballman
aff18c0446
[C++11] Replacing ObjCContainerDecl iterators meth_begin() and meth_end() with iterator_range methods(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203832
2014-03-13 19:03:34 +00:00
Aaron Ballman
dc4bea4676
[C++11] Replacing ObjCContainerDecl iterators prop_begin() and prop_end() with iterator_range props(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203830
2014-03-13 18:47:37 +00:00
Aaron Ballman
9bc5f36099
[C++11] Replacing ObjCImplementationDecl iterators init_begin() and init_end() with iterator_range inits(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203820
2014-03-13 17:35:02 +00:00
Aaron Ballman
445a939db8
[C++11] Replacing CXXRecordDecl iterators vbases_begin() and vbases_end() with iterator_range vbases(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203808
2014-03-13 16:15:17 +00:00
Rafael Espindola
93c7a6532e
Simplify code. No functionality change.
...
llvm-svn: 203804
2014-03-13 15:47:50 +00:00
Aaron Ballman
574705ed7f
[C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203803
2014-03-13 15:41:46 +00:00
Justin Bogner
d66a17d0a3
Revert "CodeGen: Use a binary format for instrumentation based profiling"
...
I've clearly done something wrong with how to get this to link
correctly. Reverting for now.
This reverts commit r203711.
llvm-svn: 203712
2014-03-12 21:06:31 +00:00
Justin Bogner
ff9a058267
CodeGen: Use a binary format for instrumentation based profiling
...
This updates CodeGenPGO to use the ProfileDataReader introduced to
llvm in r203703 and the new API for writing out the profile introduced
to compiler-rt in r203710.
llvm-svn: 203711
2014-03-12 20:53:16 +00:00
Richard Smith
0fc7bdc821
PR19113: Emit 'vtable' TBAA metadata when loading a vptr in a pointer-to-member-function call.
...
llvm-svn: 203691
2014-03-12 18:26:14 +00:00
Justin Bogner
4c9c45c060
CodeGen: Move hot/cold logic out of PGOProfileData
...
llvm-svn: 203689
2014-03-12 18:14:32 +00:00
Eli Bendersky
b5cfa8c2f3
Don't recompute inlining threshold - use new overload provided by LLVM
...
Follow-up on LLVM r203669
llvm-svn: 203673
2014-03-12 16:30:34 +00:00
Oliver Stannard
7c3c09e23f
ARM: Correct alignment of structs passed as byval pointer
...
When a struct has bitfields overlapping with other members
(as required by the AAPCS), clang uses a packed struct to
represent this. If such a struct is large enough for clang to
pass it as a byval pointer (>64 bytes), we need to set the
alignment of the argument to match the original type.
llvm-svn: 203660
2014-03-12 14:02:50 +00:00
Craig Topper
4f12f10de4
[C++11] Add 'override' keyword to virtual methods that override their base class.
...
llvm-svn: 203643
2014-03-12 06:41:41 +00:00
Duncan P. N. Exon Smith
38402dc917
PGO: Scale large counters down to 32-bits
...
PGO counters are 64-bit and branch weights are 32-bit. Scale them down
when necessary, instead of just taking the lower 32 bits.
<rdar://problem/16276448>
llvm-svn: 203592
2014-03-11 18:18:10 +00:00
Tim Northover
e94a34cae2
Sema: produce error when invalid ordering is passed to atomic builtin
...
This is a conservative check, because it's valid for the expression to be
non-constant, and in cases like that we just don't know whether it's valid.
rdar://problem/16242991
llvm-svn: 203561
2014-03-11 10:49:14 +00:00
Tim Northover
0622b3a67a
Update for IR: add a second AtomicOrdering to cmpxchg insts.
...
rdar://problem/15996804
llvm-svn: 203560
2014-03-11 10:49:03 +00:00
Fariborz Jahanian
f322f2fb61
Objective-C IRGen. Fixes several regressions caused by changes made
...
to setting of ObjC linkages. //rdar://16206443
llvm-svn: 203521
2014-03-11 00:25:05 +00:00
John McCall
e54d92b0f1
RTTI symbols for visible local types may need weak linkage.
...
Previously, we would always emit them with internal linkage,
but with hidden visibility when the function was hidden, which
is an illegal combination, which could lead LLVM to actually
emit them as strong hidden symbols with hilarious results.
rdar://16265084
llvm-svn: 203503
2014-03-10 22:27:33 +00:00
David Majnemer
938bc1ea84
IRGen: __c11/__atomic compare-and-exchange should respect the standard
...
Summary:
'Expected' should only be modified if the operation fails.
This fixes PR18899.
Reviewers: chandlerc, rsmith, rjmccall
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2922
llvm-svn: 203493
2014-03-10 21:35:33 +00:00
Aaron Ballman
be22bcb180
[C++11] Replacing DeclBase iterators specific_attr_begin() and specific_attr_end() with iterator_range specific_attrs(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203474
2014-03-10 17:08:28 +00:00
Aaron Ballman
62e47c423d
Reverting llvm::distance changes to use std::distance with iterators instead, per post-commit review feedback.
...
Replacing llvm::copy changes with SmallVector range-based construction which is a considerably cleaner approach.
llvm-svn: 203461
2014-03-10 13:43:55 +00:00
Ahmed Charles
dfca6f97bc
[C++11] Replace OwningPtr include with <memory>.
...
llvm-svn: 203389
2014-03-09 11:36:40 +00:00
Chandler Carruth
4d01fff492
[C++11] Update Clang for the change to LLVM's Use-Def chain iterators in
...
r203364: what was use_iterator is now user_iterator, and there is
a use_iterator for directly iterating over the uses.
This also switches to use the range-based APIs where appropriate.
llvm-svn: 203365
2014-03-09 03:16:50 +00:00
Aaron Ballman
e8a8baef44
[C++11] Replacing RecordDecl iterators field_begin() and field_end() with iterator_range fields(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203355
2014-03-08 20:12:42 +00:00
Aaron Ballman
23a6dcb365
[C++11] Replacing EnumDecl iterators enumerator_begin() and enumerator_end() with iterator_range enumerators(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203353
2014-03-08 18:45:14 +00:00
Ahmed Charles
b89843299a
Replace OwningPtr with std::unique_ptr.
...
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
llvm-svn: 203279
2014-03-07 20:03:18 +00:00
Aaron Ballman
629afaefe0
[C++11] Replacing DeclBase iterators decls_begin() and decls_end() with iterator_range decls(). The same is true for the noload versions of these APIs. Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203278
2014-03-07 19:56:05 +00:00
Ahmed Charles
9a16beb8bc
Change OwningPtr::take() to OwningPtr::release().
...
This is a precursor to moving to std::unique_ptr.
llvm-svn: 203275
2014-03-07 19:33:25 +00:00
Ted Kremenek
090a273b55
Remove dead return and simplify code.
...
llvm-svn: 203266
2014-03-07 18:53:05 +00:00
Aaron Ballman
29c9460d3e
Renaming the chains() ranged iterator to chain() per suggestion by Richard Smith.
...
llvm-svn: 203262
2014-03-07 18:36:15 +00:00
Aaron Ballman
1391608234
[C++11] Replacing IndirectFieldDecl iterators chain_begin() and chain_end() with iterator_range chains(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203261
2014-03-07 18:11:58 +00:00
Aaron Ballman
43b68bebe7
[C++11] Replacing ObjCMethodDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203255
2014-03-07 17:50:17 +00:00
Aaron Ballman
b2b8b1dc66
[C++11] Replacing BlockDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203250
2014-03-07 16:09:59 +00:00
Aaron Ballman
f6bf62e2d0
[C++11] Replacing FunctionDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203248
2014-03-07 15:12:56 +00:00