Matt Arsenault [Sun, 13 Mar 2016 05:11:51 +0000 (05:11 +0000)]
APFloat: Fix scalbn handling of denormals
This was incorrect for denormals, and also failed
on longer exponent ranges.
llvm-svn: 263369
Rui Ueyama [Sun, 13 Mar 2016 05:06:50 +0000 (05:06 +0000)]
Use RelTy instead of Elf_Rel_Impl<ELFT, isRela> for readability.
llvm-svn: 263368
Rui Ueyama [Sun, 13 Mar 2016 04:55:44 +0000 (04:55 +0000)]
Define IsRela static const member to Elf_Rel type.
So that we can write RelTy::IsRela to query its type.
llvm-svn: 263367
Rui Ueyama [Sun, 13 Mar 2016 04:40:17 +0000 (04:40 +0000)]
Cosmetic change to reduce repetitions. NFC.
llvm-svn: 263366
Rui Ueyama [Sun, 13 Mar 2016 04:40:14 +0000 (04:40 +0000)]
Redefine isGnuIfunc as a member function of SymbolBody.
llvm-svn: 263365
Rui Ueyama [Sun, 13 Mar 2016 04:40:12 +0000 (04:40 +0000)]
Body can never be null in this context.
Because of the recent commit to allocate SymbolBodies for local symbols.
llvm-svn: 263364
Rui Ueyama [Sun, 13 Mar 2016 04:25:43 +0000 (04:25 +0000)]
Remove dead code.
llvm-svn: 263363
Rui Ueyama [Sun, 13 Mar 2016 04:25:41 +0000 (04:25 +0000)]
Do not return a bool value from error().
error returned true if there was an error. This allows us to replace
the code like this
if (EC) {
error(EC, "something failed");
return;
}
with
if (error(EC, "something failed"))
return;
I thought that that was a good idea, but it turned out that we only
have two places to use this pattern. So this patch removes that feature.
llvm-svn: 263362
Rui Ueyama [Sun, 13 Mar 2016 04:11:53 +0000 (04:11 +0000)]
The difference of getBss() and Out<ELFT>::Bss is subtle, so remove that function.
llvm-svn: 263361
Rui Ueyama [Sun, 13 Mar 2016 04:05:42 +0000 (04:05 +0000)]
Split addCopyRelSymbols. NFC.
llvm-svn: 263360
Rui Ueyama [Sun, 13 Mar 2016 03:43:32 +0000 (03:43 +0000)]
Remove redundant check.
The control reaches here only when linking MIPS binaries.
llvm-svn: 263359
Rui Ueyama [Sun, 13 Mar 2016 03:17:44 +0000 (03:17 +0000)]
Fix spelling.
llvm-svn: 263358
Rui Ueyama [Sun, 13 Mar 2016 03:17:42 +0000 (03:17 +0000)]
"Windows" is a product name, so it should be spelled correctly.
llvm-svn: 263357
Rui Ueyama [Sun, 13 Mar 2016 03:09:40 +0000 (03:09 +0000)]
Simplify findMipsPairedReloc function signature. NFC.
llvm-svn: 263356
Nico Weber [Sun, 13 Mar 2016 03:04:46 +0000 (03:04 +0000)]
Also test that the pch file is not printed in /showIncludes
llvm-svn: 263355
Craig Topper [Sun, 13 Mar 2016 02:56:31 +0000 (02:56 +0000)]
[X86] Remove many operands that represent memory stores from outs to ins. These operands are the registers and immediates that specify the memory address not the memory itself thus they are inputs.
llvm-svn: 263354
Nico Weber [Sun, 13 Mar 2016 02:48:51 +0000 (02:48 +0000)]
Make test a bit stricter to check not just the file basename is printed.
llvm-svn: 263353
Nico Weber [Sun, 13 Mar 2016 02:44:13 +0000 (02:44 +0000)]
clang-cl: Add /Yc argument to /showIncludes output.
To make this work, delay printing of ExtraDeps in HeaderIncludesCallback a bit,
so that it happens after CompilerInstance::InitializeSourceManager() has run.
General /FI arguments are still missing from /showIncludes output, this still
needs to be fixed.
llvm-svn: 263352
Rui Ueyama [Sun, 13 Mar 2016 01:54:48 +0000 (01:54 +0000)]
ELF: Include the build ID section in the first page.
At least Linux has the kernel configuration to include the first page
of the executable into core files. We want build ID section to be
included in core files to identify them.
Here is the link to the description about the kernel configuration.
https://github.com/torvalds/linux/blob/
097f70b3c4d84ffccca15195bdfde3a37c0a7c0f/fs/Kconfig.binfmt#L46
llvm-svn: 263351
Amaury Sechet [Sun, 13 Mar 2016 00:58:25 +0000 (00:58 +0000)]
Add echo test for constant data arrays in the LLVM C API
llvm-svn: 263350
Amaury Sechet [Sun, 13 Mar 2016 00:54:40 +0000 (00:54 +0000)]
Use templated version of unwrap instead of cats in the Core.cpp. NFC
llvm-svn: 263349
Amaury Sechet [Sun, 13 Mar 2016 00:40:12 +0000 (00:40 +0000)]
Move LLVMConstStructInContext so that declarationa nd definition order match. NFC
llvm-svn: 263348
Sanjay Patel [Sat, 12 Mar 2016 21:09:26 +0000 (21:09 +0000)]
update test to use FileCheck
llvm-svn: 263347
Sanjay Patel [Sat, 12 Mar 2016 20:44:58 +0000 (20:44 +0000)]
fix documentation comments; NFC
llvm-svn: 263346
Sanjay Patel [Sat, 12 Mar 2016 20:44:30 +0000 (20:44 +0000)]
fix documentation comments; NFC
llvm-svn: 263345
Nico Weber [Sat, 12 Mar 2016 19:55:59 +0000 (19:55 +0000)]
clang-cl: Add a test for the interaction of /Yc and /showIncludes.
We almost get this right, but not completely (see FIXME). It looks like /FI
headers generally aren't included in /showIncludes yet, but they should be.
But it seems good to have test coverage for the bits that already work.
llvm-svn: 263344
Sanjay Patel [Sat, 12 Mar 2016 18:17:41 +0000 (18:17 +0000)]
remove unnecessary cast; NFC
llvm-svn: 263343
Sanjay Patel [Sat, 12 Mar 2016 18:05:53 +0000 (18:05 +0000)]
fix formatting; NFC
llvm-svn: 263342
Sanjay Patel [Sat, 12 Mar 2016 16:52:17 +0000 (16:52 +0000)]
use range loops; NFCI
llvm-svn: 263341
Sanjay Patel [Sat, 12 Mar 2016 15:16:59 +0000 (15:16 +0000)]
[x86, InstCombine] delete x86 SSE2 masked store with zero mask
This follows up on the related AVX instruction transforms, but this
one is too strange to do anything more with. Intel's behavioral
description of this instruction in its Software Developer's Manual
is tragi-comic.
llvm-svn: 263340
Simon Atanasyan [Sat, 12 Mar 2016 11:58:15 +0000 (11:58 +0000)]
[ELF][MIPS] Put type of symbol (local/global) to the findMipsPairedReloc and call it from the single place. NFC.
llvm-svn: 263339
Nemanja Ivanovic [Sat, 12 Mar 2016 10:23:07 +0000 (10:23 +0000)]
Fix for PR 26378
This patch corresponds to review:
http://reviews.llvm.org/D17712
We were not clearing the TOC vector in PPCAsmPrinter when initializing it. This
caused duplicate definition asserts when the pass is reused on the module
(i.e. with -compile-twice or in JIT contexts).
llvm-svn: 263338
George Rimar [Sat, 12 Mar 2016 08:31:34 +0000 (08:31 +0000)]
Recommit of r263252, [ELF] - Change all messages to lowercase to be consistent.
which was reverted because included
unrelative changes by mistake.
Original commit message:
[ELF] - Change all messages to lowercase to be consistent.
That is directly opposite to http://reviews.llvm.org/D18045,
which was reverted.
This patch changes all messages to start from lowercase letter if
they were not before.
That is done to be consistent with clang.
Differential revision: http://reviews.llvm.org/D18085
llvm-svn: 263337
Rui Ueyama [Sat, 12 Mar 2016 06:06:40 +0000 (06:06 +0000)]
Update the documents of the new LLD.
This patch merges the documents for ELF and COFF into one
and puts it into docs directory.
llvm-svn: 263336
Teresa Johnson [Sat, 12 Mar 2016 05:38:22 +0000 (05:38 +0000)]
Use default destructor and remove unnecessary virtual destructor
Only the virtual destructor in the base class is needed, and can use the
default.
llvm-svn: 263335
Jim Ingham [Sat, 12 Mar 2016 03:33:36 +0000 (03:33 +0000)]
Let's not convert from UINT32_MAX to the std::numeric_limits version.
llvm-svn: 263333
Kostya Serebryany [Sat, 12 Mar 2016 03:23:02 +0000 (03:23 +0000)]
[libFuzzer] refresh docs more
llvm-svn: 263332
Kostya Serebryany [Sat, 12 Mar 2016 03:11:27 +0000 (03:11 +0000)]
[libFuzzer] refresh docs more
llvm-svn: 263331
Kostya Serebryany [Sat, 12 Mar 2016 03:05:37 +0000 (03:05 +0000)]
[libFuzzer] refresh docs more
llvm-svn: 263330
Chandler Carruth [Sat, 12 Mar 2016 03:03:31 +0000 (03:03 +0000)]
[lit] Hack lit to allow a test suite to request that it is run "early".
This lets us for example start running the unit test suite early. For
'check-llvm' on my machine, this drops the tim e from 44s to 32s!!!!!
It's pretty ugly. I barely know how to write Python, so feel free to
just tell me how I should write it instead. =D Thanks to Filipe and
others for help.
Differential Revision: http://reviews.llvm.org/D18089
llvm-svn: 263329
Kostya Serebryany [Sat, 12 Mar 2016 02:56:25 +0000 (02:56 +0000)]
[libFuzzer] refresh docs
llvm-svn: 263328
Sanjoy Das [Sat, 12 Mar 2016 02:54:27 +0000 (02:54 +0000)]
Make gc relocates more strongly typed; NFC
Don't use a `Value *` where we can use a stronger `GCRelocateInst *`
type.
llvm-svn: 263327
Jim Ingham [Sat, 12 Mar 2016 02:45:34 +0000 (02:45 +0000)]
This change introduces a "ExpressionExecutionThread" to the ThreadList.
Turns out that most of the code that runs expressions (e.g. the ObjC runtime grubber) on
behalf of the expression parser was using the currently selected thread. But sometimes,
e.g. when we are evaluating breakpoint conditions/commands, we don't select the thread
we're running on, we instead set the context for the interpreter, and explicitly pass
that to other callers. That wasn't getting communicated to these utility expressions, so
they would run on some other thread instead, and that could cause a variety of subtle and
hard to reproduce problems.
I also went through the commands and cleaned up the use of GetSelectedThread. All those
uses should have been trying the thread in the m_exe_ctx belonging to the command object
first. It would actually have been pretty hard to get misbehavior in these cases, but for
correctness sake it is good to make this usage consistent.
<rdar://problem/
24978569>
llvm-svn: 263326
Quentin Colombet [Sat, 12 Mar 2016 02:25:27 +0000 (02:25 +0000)]
[X86] Make sure we do not clobber RBX with cmpxchg when used as a base pointer.
cmpxchg[8|16]b uses RBX as one of its argument.
In other words, using this instruction clobbers RBX as it is defined to hold one
the input. When the backend uses dynamically allocated stack, RBX is used as a
reserved register for the base pointer.
Reserved registers have special semantic that only the target understands and
enforces, because of that, the register allocator don’t use them, but also,
don’t try to make sure they are used properly (remember it does not know how
they are supposed to be used).
Therefore, when RBX is used as a reserved register but defined by something that
is not compatible with that use, the register allocator will not fix the
surrounding code to make sure it gets saved and restored properly around the
broken code. This is the responsibility of the target to do the right thing with
its reserved register.
To fix that, when the base pointer needs to be preserved, we use a different
pseudo instruction for cmpxchg that save rbx.
That pseudo takes two more arguments than the regular instruction:
- One is the value to be copied into RBX to set the proper value for the
comparison.
- The other is the virtual register holding the save of the value of RBX as the
base pointer. This saving is done as part of isel (i.e., we emit a copy from
rbx).
cmpxchg_save_rbx <regular cmpxchg args>, input_for_rbx_reg, save_of_rbx_as_bp
This gets expanded into:
rbx = copy input_for_rbx_reg
cmpxchg <regular cmpxchg args>
rbx = save_of_rbx_as_bp
Note: The actual modeling of the pseudo is a bit more complicated to make sure
the interferes that appears after the pseudo gets expanded are properly modeled
before that expansion.
This fixes PR26883.
llvm-svn: 263325
Nico Weber [Sat, 12 Mar 2016 01:57:31 +0000 (01:57 +0000)]
Fix bad regression from r263077 when building with MSVC.
That change did:
-#if defined(__BIG_ENDIAN__)
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
If __BYTE_ORDER__ and __ORDER_BIG_ENDIAN__ aren't defined, like
they are with MSVC, this condition is true (0 == 0).
Fixes PR26919.
llvm-svn: 263324
Kostya Serebryany [Sat, 12 Mar 2016 01:57:04 +0000 (01:57 +0000)]
[libFuzzer] try to use max_len based on the items of the corpus instead of blindly defaulting to 64 bytes.
llvm-svn: 263323
David Blaikie [Sat, 12 Mar 2016 01:53:28 +0000 (01:53 +0000)]
Revert "Update Polly for the removal of PreserveNames from IRBuilder stuff"
The original r263258 was reverted in r263321 due to issues with Release
testing.
This reverts commit r263296.
llvm-svn: 263322
Eric Christopher [Sat, 12 Mar 2016 01:47:22 +0000 (01:47 +0000)]
Temporarily revert:
commit
ae14bf6488e8441f0f6d74f00455555f6f3943ac
Author: Mehdi Amini <mehdi.amini@apple.com>
Date: Fri Mar 11 17:15:50 2016 +0000
Remove PreserveNames template parameter from IRBuilder
Summary:
Following r263086, we are now relying on a flag on the Context to
discard Value names in release builds.
Reviewers: chandlerc
Subscribers: mzolotukhin, llvm-commits
Differential Revision: http://reviews.llvm.org/D18023
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263258
91177308-0d34-0410-b5e6-
96231b3b80d8
until we can figure out what to do about clang and Release build testing.
This reverts commit 263258.
llvm-svn: 263321
Eric Christopher [Sat, 12 Mar 2016 01:47:11 +0000 (01:47 +0000)]
Temporarily revert these patches:
commit
60d9845f6a037122d9be9a6d92d4de617ef45b04
Author: Mehdi Amini <mehdi.amini@apple.com>
Date: Fri Mar 11 18:48:02 2016 +0000
Fix clang crash: when CodeGenAction is initialized without a
context, use the member and not the parameter
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263273
91177308-0d34-0410-b5e6-
96231b3b80d8
commit
af7ce3bf04a75ad5124b457b805df26006bd215b
Author: Mehdi Amini <mehdi.amini@apple.com>
Date: Fri Mar 11 17:32:58 2016 +0000
Fix build: use -> with pointers and not .
Silly typo.
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263267
91177308-0d34-0410-b5e6-
96231b3b80d8
commit
d0eea119192814954e7368c77d0dc5a9eeec1fbb
Author: Mehdi Amini <mehdi.amini@apple.com>
Date: Fri Mar 11 17:15:44 2016 +0000
Remove compile time PreserveName switch based on NDEBUG
Summary:
Following r263086, we are now relying on a flag on the Context to
discard Value names in release builds.
Reviewers: chandlerc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18024
From: Mehdi Amini <mehdi.amini@apple.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263257
91177308-0d34-0410-b5e6-
96231b3b80d8
until we can fix the Release builds.
This reverts commits 263257, 263267, 263273
llvm-svn: 263320
Eric Christopher [Sat, 12 Mar 2016 01:31:53 +0000 (01:31 +0000)]
Add Lanai.def to the module map.
llvm-svn: 263319
Michael Zolotukhin [Sat, 12 Mar 2016 01:28:56 +0000 (01:28 +0000)]
[LoopUnroll] Convert some existing tests to unit-tests.
Summary: As we now have unit-tests for UnrollAnalyzer, we can convert some existing tests to this format. It should make the tests more robust.
Reviewers: chandlerc, sanjoy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D17904
llvm-svn: 263318
Teresa Johnson [Sat, 12 Mar 2016 01:23:57 +0000 (01:23 +0000)]
Fix a memory leak due to missing virtual destructors
Caused a couple of sanitizer bot failures in ThinLTO tests due to
r263275.
llvm-svn: 263317
Samuel Antao [Sat, 12 Mar 2016 00:55:17 +0000 (00:55 +0000)]
Initialize two variables in kmp_tasking.
Summary:
Two initialized local variables are causing clang to produce warnings:
```
./src/projects/openmp/runtime/src/kmp_tasking.c:3019:5: error: variable 'num_tasks' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
default:
^~~~~~~
./src/projects/openmp/runtime/src/kmp_tasking.c:3027:21: note: uninitialized use occurs here
for( i = 0; i < num_tasks; ++i ) {
^~~~~~~~~
./src/projects/openmp/runtime/src/kmp_tasking.c:2968:28: note: initialize the variable 'num_tasks' to silence this warning
kmp_uint64 i, num_tasks, extras;
^
= 0
./src/projects/openmp/runtime/src/kmp_tasking.c:3019:5: error: variable 'extras' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
default:
^~~~~~~
./src/projects/openmp/runtime/src/kmp_tasking.c:3022:52: note: uninitialized use occurs here
KMP_DEBUG_ASSERT(tc == num_tasks * grainsize + extras);
^~~~~~
./src/projects/openmp/runtime/src/kmp_debug.h:62:60: note: expanded from macro 'KMP_DEBUG_ASSERT'
#define KMP_DEBUG_ASSERT( cond ) KMP_ASSERT( cond )
^
./src/projects/openmp/runtime/src/kmp_debug.h:60:51: note: expanded from macro 'KMP_ASSERT'
#define KMP_ASSERT( cond ) ( (cond) ? 0 : __kmp_debug_assert( #cond, __FILE__, __LINE__ ) )
^
./src/projects/openmp/runtime/src/kmp_tasking.c:2968:36: note: initialize the variable 'extras' to silence this warning
kmp_uint64 i, num_tasks, extras;
^
= 0
2 errors generated.
```
This patch initializes these two variables.
Reviewers: tlwilmar, jlpeyton
Subscribers: tlwilmar, openmp-commits
Differential Revision: http://reviews.llvm.org/D17909
llvm-svn: 263316
Wilfred Hughes [Sat, 12 Mar 2016 00:43:26 +0000 (00:43 +0000)]
Updating source languages entry in FAQ.
Dragonegg is no longer actively maintained[1], and the Pypy team is not
actively pursuing LLVM[2].
1: http://reviews.llvm.org/D9331
2: http://rpython.readthedocs.org/en/latest/faq.html#could-we-use-llvm
llvm-svn: 263314
Eugene Zelenko [Sat, 12 Mar 2016 00:31:13 +0000 (00:31 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.
llvm-svn: 263312
Nico Weber [Sat, 12 Mar 2016 00:23:33 +0000 (00:23 +0000)]
Disable a test that started failing recently; see PR26919.
llvm-svn: 263311
Evgeniy Stepanov [Fri, 11 Mar 2016 23:50:57 +0000 (23:50 +0000)]
Disable CFI checks in std::addressof.
std::addressof may be used on a storage of an object before the start
of its lifetime (see std::allocate_shared for example). CFI flags the
C-style cast as invalid in that case.
llvm-svn: 263310
Chris Matthews [Fri, 11 Mar 2016 23:31:02 +0000 (23:31 +0000)]
Fix the docs I broke
llvm-svn: 263309
Mike Aizatsky [Fri, 11 Mar 2016 23:28:28 +0000 (23:28 +0000)]
[sancov] using md5 for anchors in attempt to reduce file size.
Differential Revision: http://reviews.llvm.org/D18102
llvm-svn: 263308
Mike Aizatsky [Fri, 11 Mar 2016 23:26:41 +0000 (23:26 +0000)]
Don't crash sancov if file is unreadable.
Summary:
Caller can provides the list of .so files where some files are
unreadable (e.g linux-vdso.so.1). It's more convenient to handler this in
sancov with warning then making all callers to check files.
Reviewers: aizatsky
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D18103
llvm-svn: 263307
Chris Matthews [Fri, 11 Mar 2016 22:33:36 +0000 (22:33 +0000)]
Extend test-suite docs to describe how to run test-suite with cmake+lit
llvm-svn: 263305
Mehdi Amini [Fri, 11 Mar 2016 22:19:06 +0000 (22:19 +0000)]
Minor cleanup and documentation to IRMover (NFC)
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263304
Simon Pilgrim [Fri, 11 Mar 2016 22:18:05 +0000 (22:18 +0000)]
[X86][SSE] Simplify vector LOAD + EXTEND on pre-SSE41 hardware
Improve vector extension of vectors on hardware without dedicated VSEXT/VZEXT instructions.
We already convert these to SIGN_EXTEND_VECTOR_INREG/ZERO_EXTEND_VECTOR_INREG but can further improve this by using the legalizer instead of prematurely splitting into legal vectors in the combine as this only properly helps for lowering to VSEXT/VZEXT.
Removes a lot of unnecessary any_extend + mask pattern - (Fix for PR25718).
Differential Revision: http://reviews.llvm.org/D17932
llvm-svn: 263303
Daniel Jasper [Fri, 11 Mar 2016 22:13:28 +0000 (22:13 +0000)]
Make functions in altivec.h be __inline__. As they are all also marked
__always_inline__, this has likely been meant from the start.
Review: http://reviews.llvm.org/D18015
llvm-svn: 263302
Ahmed Bougacha [Fri, 11 Mar 2016 22:02:58 +0000 (22:02 +0000)]
[AArch64] Don't blindly lower f16/f128 FCCMPs.
Instead, extend f16 (like we do when lowering a standalone SETCC),
and let f128 be legalized to the RT calls.
Fixes PR26803.
llvm-svn: 263301
Eugene Zelenko [Fri, 11 Mar 2016 21:55:47 +0000 (21:55 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.
llvm-svn: 263300
Bob Wilson [Fri, 11 Mar 2016 21:55:37 +0000 (21:55 +0000)]
Add fix-it for format-security warnings.
llvm-svn: 263299
Teresa Johnson [Fri, 11 Mar 2016 21:34:45 +0000 (21:34 +0000)]
Initialize CalleeInfo to fix bot after r263275
Hopefully will fix garbage output in
http://lab.llvm.org:8011/builders/clang-x86-win2008-selfhost/builds/6901
llvm-svn: 263297
David Blaikie [Fri, 11 Mar 2016 21:33:58 +0000 (21:33 +0000)]
Update Polly for the removal of PreserveNames from IRBuilder stuff
llvm-svn: 263296
Jordan Rose [Fri, 11 Mar 2016 21:14:40 +0000 (21:14 +0000)]
Fix ObjCMethodDecl::findPropertyDecl for class properties.
This affects code completion and a few other things; hopefully the code completion
test is sufficient to catch regressions.
llvm-svn: 263295
Reid Kleckner [Fri, 11 Mar 2016 21:07:48 +0000 (21:07 +0000)]
Fix order of arguments to fputs
This time actually tested on Linux, where the test is not XFAILed.
llvm-svn: 263294
Reid Kleckner [Fri, 11 Mar 2016 20:54:14 +0000 (20:54 +0000)]
Switch to fputs stderr to try to fix output buffering issues
llvm-svn: 263293
Rui Ueyama [Fri, 11 Mar 2016 20:51:53 +0000 (20:51 +0000)]
ELF: Implement --build-id.
This patch implements --build-id. After the linker creates an output file
in the memory buffer, it computes the FNV1 hash of the resulting file
and set the hash to the .note section as a build-id.
GNU ld and gold have the same feature, but their default choice of the
hash function is different. Their default is SHA1.
We made a deliberate choice to not use a secure hash function for the
sake of performance. Computing a secure hash is slow -- for example,
MD5 throughput is usually 400 MB/s or so. SHA1 is slower than that.
As a result, if you pass --build-id to gold, then the linker becomes about
10% slower than that without the option. We observed a similar degradation
in an experimental implementation of build-id for LLD. On the other hand,
we observed only 1-2% performance degradation with the FNV hash.
Since build-id is not for digital certificate or anything, we think that
a very small probability of collision is acceptable.
We considered using other signals such as using input file timestamps as
inputs to a secure hash function. But such signals would have an issue
with build reproducibility (if you build a binary from the same source
tree using the same toolchain, the build id should become the same.)
GNU linkers accepts --build-id=<style> option where style is one of
"MD5", "SHA1", or an arbitrary hex string. That option is out of scope
of this patch.
http://reviews.llvm.org/D18091
llvm-svn: 263292
Jonathan Peyton [Fri, 11 Mar 2016 20:23:05 +0000 (20:23 +0000)]
[STATS] change TASK_execution name to OMP_task
llvm-svn: 263291
Jonathan Peyton [Fri, 11 Mar 2016 20:20:49 +0000 (20:20 +0000)]
[STATS] Add a total statistics count
This change removes synthesized stats and instead has all timers print out a
total which is the aggregate statistics across threads. This is displayed as
"Total_foo" at the end of program. The stats_flags_e::synthesized flag is
removed and the printStats() function is split into two separate functions:
printTimerStats() which can display the aggregate total and printCounterStats().
Differential Revision: http://reviews.llvm.org/D17869
llvm-svn: 263290
Eugene Zelenko [Fri, 11 Mar 2016 20:20:38 +0000 (20:20 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Core; other minor fixes.
llvm-svn: 263289
Rui Ueyama [Fri, 11 Mar 2016 20:20:25 +0000 (20:20 +0000)]
Define NT_GNU_BUILD_ID constant.
llvm-svn: 263288
Dan Gohman [Fri, 11 Mar 2016 19:45:37 +0000 (19:45 +0000)]
[WebAssembly] Add `final` keywords to a few more subclasses, for consistency.
llvm-svn: 263287
George Burgess IV [Fri, 11 Mar 2016 19:34:03 +0000 (19:34 +0000)]
[MemorySSA] Make a return type reflect reality. NFC.
llvm-svn: 263286
Reid Kleckner [Fri, 11 Mar 2016 19:17:53 +0000 (19:17 +0000)]
Add missing triple to instantiate-sizeof.cpp test
llvm-svn: 263285
Jim Ingham [Fri, 11 Mar 2016 19:15:03 +0000 (19:15 +0000)]
Remove the skip if Darwin since I fixed the crash.
llvm-svn: 263283
Reid Kleckner [Fri, 11 Mar 2016 19:11:15 +0000 (19:11 +0000)]
Make printf-4 more robust to strlen interception after r263177
The CHECK line was matching stack-buffer-overflow from puts calling
strlen, which is not the bug the test is trying to catch.
llvm-svn: 263282
Sanjoy Das [Fri, 11 Mar 2016 19:08:34 +0000 (19:08 +0000)]
Introduce @llvm.experimental.deoptimize
Summary:
This intrinsic, together with deoptimization operand bundles, allow
frontends to express transfer of control and frame-local state from
one (typically more specialized, hence faster) version of a function
into another (typically more generic, hence slower) version.
In languages with a fully integrated managed runtime this intrinsic can
be used to implement "uncommon trap" like functionality. In unmanaged
languages like C and C++, this intrinsic can be used to represent the
slow paths of specialized functions.
Note: this change does not address how `@llvm.experimental_deoptimize`
is lowered. That will be done in a later change.
Reviewers: chandlerc, rnk, atrick, reames
Subscribers: llvm-commits, kmod, mjacob, maksfb, mcrosier, JosephTremoulet
Differential Revision: http://reviews.llvm.org/D17732
llvm-svn: 263281
Rui Ueyama [Fri, 11 Mar 2016 19:04:56 +0000 (19:04 +0000)]
Remove obsolete comment.
llvm-svn: 263280
Reid Kleckner [Fri, 11 Mar 2016 18:59:12 +0000 (18:59 +0000)]
Allow sizeof(UnrelatedClass::field) in C++11 class template methods
This feature works outside of templates by forming a DeclRefExpr to a
FieldDecl instead of a MemberExpr, which requires a base object in
addition to the FieldDecl.
Previously, while building up the template AST before instantiation, we
formed a CXXDependentScopeMemberExpr, which always instantiates to a
MemberExpr. Now, in unevaluated contexts we form a
DependentScopeDeclRefExpr, which is a more flexible node that can
instantiate to either a MemberExpr or a DeclRefExpr depending on lookup
results.
Fixes PR26893.
llvm-svn: 263279
Vedant Kumar [Fri, 11 Mar 2016 18:57:48 +0000 (18:57 +0000)]
[PGO] Skip value profile instrumentation of inline asm
Value profile instrumentation treats inline asm calls like they are
indirect calls. This causes problems when the 'Callee' is passed to a
ptrtoint cast -- the verifier rightly claims that this is bogus and
crashes opt.
llvm-svn: 263278
Rui Ueyama [Fri, 11 Mar 2016 18:56:05 +0000 (18:56 +0000)]
Fix MSVC build.
llvm-svn: 263277
Teresa Johnson [Fri, 11 Mar 2016 18:52:42 +0000 (18:52 +0000)]
Update test case for llvm summary format changes in D17592.
llvm-svn: 263276
Teresa Johnson [Fri, 11 Mar 2016 18:52:24 +0000 (18:52 +0000)]
[ThinLTO] Support for reference graph in per-module and combined summary.
Summary:
This patch adds support for including a full reference graph including
call graph edges and other GV references in the summary.
The reference graph edges can be used to make importing decisions
without materializing any source modules, can be used in the plugin
to make file staging decisions for distributed build systems, and is
expected to have other uses.
The call graph edges are recorded in each function summary in the
bitcode via a list of <CalleeValueIds, StaticCount> tuples when no PGO
data exists, or <CalleeValueId, StaticCount, ProfileCount> pairs when
there is PGO, where the ValueId can be mapped to the function GUID via
the ValueSymbolTable. In the function index in memory, the call graph
edges reference the target via the CalleeGUID instead of the
CalleeValueId.
The reference graph edges are recorded in each summary record with a
list of referenced value IDs, which can be mapped to value GUID via the
ValueSymbolTable.
Addtionally, a new summary record type is added to record references
from global variable initializers. A number of bitcode records and data
structures have been renamed to reflect the newly expanded scope of the
summary beyond functions. More cleanup will follow.
Reviewers: joker.eph, davidxl
Subscribers: joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D17212
llvm-svn: 263275
Jim Ingham [Fri, 11 Mar 2016 18:49:38 +0000 (18:49 +0000)]
Check for a NULL input filehandle before referencing it.
<rdar://problem/
25105824>
llvm-svn: 263274
Mehdi Amini [Fri, 11 Mar 2016 18:48:02 +0000 (18:48 +0000)]
Fix clang crash: when CodeGenAction is initialized without a context, use the member and not the parameter
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263273
Rui Ueyama [Fri, 11 Mar 2016 18:46:51 +0000 (18:46 +0000)]
Revert r263252: "[ELF] - Change all messages to lowercase to be consistent."
This reverts commit r263252 because the change contained unrelated changes.
llvm-svn: 263272
Rafael Espindola [Fri, 11 Mar 2016 18:33:48 +0000 (18:33 +0000)]
Now that it is trivial, fix pr26878.
llvm-svn: 263271
Mike Spertus [Fri, 11 Mar 2016 18:26:47 +0000 (18:26 +0000)]
Type correct Visual Studio native visualization for PointerUnions
Visualize pointer unions by their actual type rather than as void *.
llvm-svn: 263270
Reid Kleckner [Fri, 11 Mar 2016 17:36:16 +0000 (17:36 +0000)]
[SEH] Remove nounwind/noinline from outlined finally funclets
With the new EH representation this is no longer necessary.
llvm-svn: 263269
Chad Rosier [Fri, 11 Mar 2016 17:33:36 +0000 (17:33 +0000)]
Update test case to appease bots after 263255.
I'll follow up with Matt to confirm this is the correct fix.
llvm-svn: 263268
Mehdi Amini [Fri, 11 Mar 2016 17:32:58 +0000 (17:32 +0000)]
Fix build: use -> with pointers and not .
Silly typo.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263267
Simon Pilgrim [Fri, 11 Mar 2016 17:31:43 +0000 (17:31 +0000)]
Fix spelling.
llvm-svn: 263266
Quentin Colombet [Fri, 11 Mar 2016 17:28:03 +0000 (17:28 +0000)]
[IRTranslator] Translate unconditional branches.
llvm-svn: 263265
Quentin Colombet [Fri, 11 Mar 2016 17:27:58 +0000 (17:27 +0000)]
[MachineIRBuilder] Rework buildInstr API to maximize code reuse.
llvm-svn: 263264