- Nov 13, 2013
-
-
Howard Hinnant authored
pair, and a couple of pair-like implementation detail types. The C++98/03 and 11 standards all specify that the copy constructor of pair<int, int> is trivial. However as libc++ tracked the draft C++11 standard over the years, this copy constructor became non-trivial, and then just recently was corrected back to trivial for C++11. Unfortunately (for libc++1) the Itanium ABI specifies different calling conventions for trivial and non-trivial copy constructors. Therefore currently the C++03 libc++ copy constructor for pair<int, int> is ABI incompatible with the C++11 libc++ copy constructor for pair<int, int>. This is Bad(tm). This patch corrects the situation by making this copy constructor trivial in C++03 mode as well. Just in case it is needed for an incomplete C++11 compiler, libc++ retains the ability to support pair with rvalue references, but without defaulted special members. However the pair needs non-trivial special members to implement this special case, (as it did when clang was in this place a couple of years ago). During this work a bug was also found and fixed in is_trivially_constructible. And there is a minor drive-by fix in <__config> regarding __type_visibility__. A test is updated to ensure that the copy constructor of pair<int, int> is trivial in both C++03 and C++11. This test will necessarily fail for a compiler that implements rvalue references but not defaulted special members. llvm-svn: 194536
-
Aaron Ballman authored
Removing llvm::huge_vald and llvm::huge_vall because they are not currently used, and HUGE_VALD does not appear to be supported everywhere anyways. llvm-svn: 194535
-
NAKAMURA Takumi authored
unittests/Tooling/ToolingTest.cpp: Suppress new tests on win32, due to handling of virtual file, such "/a.cc". llvm-svn: 194534
-
Aaron Ballman authored
Patch reviewed by Reid Kleckner and Jim Grosbach. llvm-svn: 194533
-
Fariborz Jahanian authored
on inferred property attribute under -objcmt-ns-nonatomic-iosonly option. // rdar://15442742 llvm-svn: 194532
-
Jason Molenda authored
SBThread::GetExtendedBacktraceThread to make it more clear what is being returned. llvm-svn: 194531
-
Rafael Espindola authored
llvm-svn: 194530
-
- Nov 12, 2013
-
-
Andrew Trick authored
I still don't know how to refer to the fixed operands symbolically. I plan to look into it. llvm-svn: 194529
-
Sebastian Pop authored
print the name of the function on which the dependence analysis is performed such that changes to the testcase are easier to review. llvm-svn: 194528
-
Sebastian Pop authored
llvm-svn: 194527
-
Sebastian Pop authored
llvm-svn: 194526
-
Nadav Rotem authored
Fold (iszero(A&K1) | iszero(A&K2)) -> (A&(K1|K2)) != (K1|K2) if we know that K1 and K2 are 'one-hot' (only one bit is on). llvm-svn: 194525
-
Nadav Rotem authored
FoldBranchToCommonDest merges branches into a single branch with or/and of the condition. It has a heuristics for estimating when some of the dependencies are processed by out-of-order processors. This patch adds another rule to the heuristics that says that if the "BonusInstruction" that we speculatively execute is used by the condition of the second branch then it is okay to hoist it. This change exposes more opportunities for other passes to transform the code. It does not matter that much that we if-convert the code because the selectiondag builder splits or/and branches into multiple branches when profitable. llvm-svn: 194524
-
Hans Wennborg authored
llvm-svn: 194523
-
Akira Hatanaka authored
argument was not being passed in $f14. llvm-svn: 194522
-
Dmitri Gribenko authored
llvm-svn: 194521
-
Rafael Espindola authored
The problem was that given template<typename T> struct foo { ~foo() {} }; template class foo<int>; We would produce a alias, creating a comdat with D0 and D1, since the symbols have to be weak. Another TU is not required to have a explicit template instantiation definition or an explict template instantiation declaration and for template<typename T> struct foo { ~foo() {} }; foo<int> a; we would produce a comdat with only one symbol in it. llvm-svn: 194520
-
Akira Hatanaka authored
llvm-svn: 194519
-
Eric Christopher authored
llvm-svn: 194515
-
Justin Bogner authored
Add user-supplied C runtime and compiler-rt library functions to llvm.compiler.used to protect them from premature optimization by passes like -globalopt and -ipsccp. Calls to (seemingly unused) runtime library functions can be added by -instcombine and instruction lowering. Patch by Duncan Exon Smith, thanks! Fixes <rdar://problem/14740087> llvm-svn: 194514
-
Weiming Zhao authored
llvm-svn: 194513
-
Tim Northover authored
The system LDM and STM instructions can't usually writeback to the base register. The one exception is when an LDM is actually an exception-return (i.e. contains PC in the register list). (There's already a test that "ldm sp!, {r0-r3, pc}^" works, which is why there is no positive test). rdar://problem/15223374 llvm-svn: 194512
-
Akira Hatanaka authored
llvm-svn: 194511
-
Akira Hatanaka authored
llvm-svn: 194510
-
Peter Zotov authored
This commit significantly speeds up both bytecode and native builds of LLVM clients (from ~20 second to sub-second link time), and allows to invoke LLVM functions from OCaml toplevel. The behavior for --disable-shared builds is unchanged. llvm-svn: 194509
-
Peter Zotov authored
llvm-svn: 194508
-
Fariborz Jahanian authored
is further restricted in legacy runtime to deployment target of 10.7 and later. // rdar://15363492 llvm-svn: 194507
-
Rafael Espindola authored
Constant merge can merge a constant with implicit alignment with one that has explicit alignment. Before this change it was assuming that the explicit alignment was higher than the implicit one, causing the result to be under aligned in some cases. Fixes pr17815. Patch by Chris Smowton! llvm-svn: 194506
-
Weiming Zhao authored
llvm-svn: 194505
-
John Thompson authored
Extended moduleImport test to test a module with more than one path component. This required a change to the includes test, because of the change to the headers. llvm-svn: 194504
-
Fariborz Jahanian authored
"atomic" or "nonatomic" for properties is NS_NONATOMIC_IOSONLY. Use it if available. // rdar://15442742 llvm-svn: 194503
-
Hans Wennborg authored
llvm-svn: 194502
-
Chad Rosier authored
copy in MC layer. Added the MC layer tests. Fixed triple setting in test cases. Patch by Ana Pazos <apazos@codeaurora.org>. llvm-svn: 194501
-
Roman Divacky authored
llvm-svn: 194500
-
Yuchen Wu authored
This function will be called by GCOVProfiling to write and update object and program summaries to be read in by llvm-cov. llvm-svn: 194499
-
Sylvestre Ledru authored
llvm-svn: 194498
-
Andrew Trick authored
We already know how to fold a reload from a frameindex without analyzing the load instruction. Generalize this to handle any frameindex load. This streamlines the logic for rematerializing loads from stack arguments. As a side effect, it allows stackmaps to record a stack argument location without spilling it. Verified no effect on codegen for llvm test-suite. llvm-svn: 194497
-
Andrew Trick authored
llvm-svn: 194496
-
Andrew Trick authored
llvm-svn: 194495
-
Manuel Klimek authored
As suggested by pcc on 194226. llvm-svn: 194494
-