oota-llvm.git
9 years agouse range-based for loop; NFCI
Sanjay Patel [Fri, 13 Nov 2015 16:21:23 +0000 (16:21 +0000)]
use range-based for loop; NFCI

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253048 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ARM] Replace ARMISD::RBIT with ISD::BITREVERSE
James Molloy [Fri, 13 Nov 2015 16:05:22 +0000 (16:05 +0000)]
[ARM] Replace ARMISD::RBIT with ISD::BITREVERSE

ISD::BITREVERSE matches "rbit" completely, so remove ARMISD::RBIT and mark ISD::BITREVERSE as legal, adding a test for lowering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253047 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFixing a typo in docs/CodeGenerator.rst
Artyom Skrobov [Fri, 13 Nov 2015 15:14:04 +0000 (15:14 +0000)]
Fixing a typo in docs/CodeGenerator.rst

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253045 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips][microMIPS] Implement SHRA[_R].PH, SHRAV[_R].PH, SHRAV[_R].QB, SHRAV_R.W, SHRA_...
Zlatko Buljan [Fri, 13 Nov 2015 13:14:25 +0000 (13:14 +0000)]
[mips][microMIPS] Implement SHRA[_R].PH, SHRAV[_R].PH, SHRAV[_R].QB, SHRAV_R.W, SHRA_R.W, SHRL.PH, SHRL.QB, SHRLV.PH and SHRLV.QB instructions
Differential Revision: http://reviews.llvm.org/D14010

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253041 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips][ias] Explicitly disable IAS on asm-large-immediate.ll.
Daniel Sanders [Fri, 13 Nov 2015 13:02:31 +0000 (13:02 +0000)]
[mips][ias] Explicitly disable IAS on asm-large-immediate.ll.

NFC at the moment but it will prevent a failure when IAS is enabled by default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253039 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SystemZ] Simplify boolean conditional return statements
Ulrich Weigand [Fri, 13 Nov 2015 13:00:27 +0000 (13:00 +0000)]
[SystemZ] Simplify boolean conditional return statements

Use clang-tidy to simplify conditonal return statements.

Author: LegalizeAdulthood
Differential Revision: http://reviews.llvm.org/D9986

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253038 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips][ias] Replace invalid assembly insn in test since IAS parses inline assembly.
Daniel Sanders [Fri, 13 Nov 2015 11:44:00 +0000 (11:44 +0000)]
[mips][ias] Replace invalid assembly insn in test since IAS parses inline assembly.

This is NFC at the moment but will prevent this test from failing when
IAS is the default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253033 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[lit] Improve error message when lit fails to executable a command by
Dan Liew [Fri, 13 Nov 2015 11:38:07 +0000 (11:38 +0000)]
[lit] Improve error message when lit fails to executable a command by
showing the executable it tried to use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253032 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[lit] Fix bug where ``lit.util.which()`` would return a directory
Dan Liew [Fri, 13 Nov 2015 11:37:25 +0000 (11:37 +0000)]
[lit] Fix bug where ``lit.util.which()`` would return a directory
instead of executable if the argument was found inside a directory
contained in PATH.

An example where this could cause a problem is if there was a RUN line
that ran the ``test`` command and if the user had a directory in their
PATH that contained a directory called ``test/`` (that occured before
``/usr/bin/``). Lit would try to use the directory as the executable
which would fail with the rather cryptic message.

```
Could not create process due to [Errno 13] Permission denied
```

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253031 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[GlobalOpt] Make sure all debug lines end with '\n'
James Molloy [Fri, 13 Nov 2015 11:05:13 +0000 (11:05 +0000)]
[GlobalOpt] Make sure all debug lines end with '\n'

GlobalVariable::print() used to emit a newline. It hasn't for a while now, but these debug lines weren't updated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253030 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[GlobalOpt] Coding style - remove function names from doxygen comments
James Molloy [Fri, 13 Nov 2015 11:05:07 +0000 (11:05 +0000)]
[GlobalOpt] Coding style - remove function names from doxygen comments

Suggested by Mehdi in the review of D14148.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253029 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[AArch64] Check the expansion of BITREVERSE in regression test
James Molloy [Fri, 13 Nov 2015 10:05:31 +0000 (10:05 +0000)]
[AArch64] Check the expansion of BITREVERSE in regression test

Something I missed from Hal's review, rightly pointed out by Ben Kramer - we should make sure the expansion is properly checked as it can be easy for bugs to creep in.

I've checked the scalar i8 expansion here and the vector i8 expansion in a previous commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253024 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SDAG] Fix expansion of BITREVERSE
James Molloy [Fri, 13 Nov 2015 10:02:36 +0000 (10:02 +0000)]
[SDAG] Fix expansion of BITREVERSE

Richard Trieu noted that UBSan detected an overflowing shift, and the obvious fix caused a crash.

What was happening was that the shiftee (1U) was indeed too small for the possible range of shifts it had to handle, but also we were using "VT.getSizeInBits()" to get the maximum type bitwidth, but we wanted "VT.getScalarSizeInBits()" to get the vector lane size instead of the entire vector size.

Use an APInt for the shift and VT.getScalarSizeInBits().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253023 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ImplicitNulls] Add some clarifying comments; NFC
Sanjoy Das [Fri, 13 Nov 2015 08:14:00 +0000 (08:14 +0000)]
[ImplicitNulls] Add some clarifying comments; NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253020 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Hexagon] Fixing leak in padEndloop by allocating in MCContext.
Colin LeMahieu [Fri, 13 Nov 2015 07:58:06 +0000 (07:58 +0000)]
[Hexagon] Fixing leak in padEndloop by allocating in MCContext.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253019 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agollvm/test/tools/llvm-profdata/text-format-errors.test: Use prepared version of the...
NAKAMURA Takumi [Fri, 13 Nov 2015 06:06:58 +0000 (06:06 +0000)]
llvm/test/tools/llvm-profdata/text-format-errors.test: Use prepared version of the input file, instead of using echo.

...and s/\C9/\xC9/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253014 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[llvm-profdata] Add check for text profile formats and improve error reporting (2nd...
Nathan Slingerland [Fri, 13 Nov 2015 03:47:58 +0000 (03:47 +0000)]
[llvm-profdata] Add check for text profile formats and improve error reporting (2nd try)

Summary:
This change addresses two possible instances of user error / confusion when
merging sampled profile data.

Previously any input that didn't match the raw or processed instrumented format
would automatically be interpreted as instrumented profile text format data.
No error would be reported during the merge.

Example:
If foo-sampled.profdata and bar-sampled.profdata are binary sampled profiles:

Old behavior:
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -output foobar-sampled.profdata
$ llvm-profdata show -sample foobar-sampled.profdata
error: foobar-sampled.profdata:1: Expected 'mangled_name:NUM:NUM', found  lprofi

This change adds basic checks for valid input data when assuming text input.
It also makes error messages related to file format validity more specific about
the assumbed profile data type.

New behavior:
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -o foobar-sampled.profdata
error: foo.profdata: Unrecognized instrumentation profile encoding format
Perhaps you forgot to use the -sample option?

Reviewers: bogner, davidxl, dnovillo

Subscribers: davidxl, llvm-commits

Differential Revision: http://reviews.llvm.org/D14558

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253009 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[libFuzzer] more trophies
Kostya Serebryany [Fri, 13 Nov 2015 02:44:16 +0000 (02:44 +0000)]
[libFuzzer] more trophies

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253006 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[lib/Linker] Convert assert(false) to llvm_unreachable().
Davide Italiano [Fri, 13 Nov 2015 02:16:51 +0000 (02:16 +0000)]
[lib/Linker] Convert assert(false) to llvm_unreachable().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253005 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[libFuzzer] make libFuzzer build even with a compiler that does not have sanitizer...
Kostya Serebryany [Fri, 13 Nov 2015 01:54:40 +0000 (01:54 +0000)]
[libFuzzer] make libFuzzer build even with a compiler that does not have sanitizer headers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253003 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Hexagon] NFC. Adding a number of packet correctness tests.
Colin LeMahieu [Fri, 13 Nov 2015 01:46:06 +0000 (01:46 +0000)]
[Hexagon] NFC. Adding a number of packet correctness tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253000 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert r252990.
Akira Hatanaka [Fri, 13 Nov 2015 01:44:32 +0000 (01:44 +0000)]
Revert r252990.

Some of the buildbots are still failing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252999 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Inline asm support.
Dan Gohman [Fri, 13 Nov 2015 01:42:29 +0000 (01:42 +0000)]
[WebAssembly] Inline asm support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252997 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoLLVM_ENABLE_MODULES: No need to set -fcxx-modules in trunk, just -fmodules.
NAKAMURA Takumi [Fri, 13 Nov 2015 01:26:31 +0000 (01:26 +0000)]
LLVM_ENABLE_MODULES: No need to set -fcxx-modules in trunk, just -fmodules.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252996 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoProvide a way to specify inliner's attribute compatibility and merging.
Akira Hatanaka [Fri, 13 Nov 2015 01:23:11 +0000 (01:23 +0000)]
Provide a way to specify inliner's attribute compatibility and merging.

This reapplies r252949. I've changed the type of FuncName to be
std::string instead of StringRef in emitFnAttrCompatCheck.

Original commit message for r252949:

Provide a way to specify inliner's attribute compatibility and merging
rules using table-gen. NFC.

This commit adds new classes CompatRule and MergeRule to Attributes.td,
which are used to generate code to check attribute compatibility and
merge attributes of the caller and callee.

rdar://problem/19836465

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252990 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Hexagon] Adding relaxation functionality to backend and test.
Colin LeMahieu [Fri, 13 Nov 2015 01:12:25 +0000 (01:12 +0000)]
[Hexagon] Adding relaxation functionality to backend and test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252989 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Un-mangle the conversion instruction names.
Dan Gohman [Fri, 13 Nov 2015 00:50:04 +0000 (00:50 +0000)]
[WebAssembly] Un-mangle the conversion instruction names.

This arranges the types in the LLVM instruction names in the same order that
they appear in the WebAssembly opcode names, and eliminates
double-underscores.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252988 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Rename BR_IF_ to BR_IF
Dan Gohman [Fri, 13 Nov 2015 00:46:31 +0000 (00:46 +0000)]
[WebAssembly] Rename BR_IF_ to BR_IF

With MC-based instruction printing, we no longer need instruction names to
mangle in hints about how they should be printed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252987 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Remove unneeded TODO items. NFC.
Dan Gohman [Fri, 13 Nov 2015 00:41:25 +0000 (00:41 +0000)]
[WebAssembly] Remove unneeded TODO items. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252985 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Tidy up and update a TODO item. NFC.
Dan Gohman [Fri, 13 Nov 2015 00:40:37 +0000 (00:40 +0000)]
[WebAssembly] Tidy up and update a TODO item. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252984 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WinEH] Find root frame correctly in CLR funclets
Joseph Tremoulet [Fri, 13 Nov 2015 00:39:23 +0000 (00:39 +0000)]
[WinEH] Find root frame correctly in CLR funclets

Summary:
The value that the CoreCLR personality passes to a funclet for the
establisher frame may be the root function's frame or may be the parent
funclet's (mostly empty) frame in the case of nested funclets.  Each
funclet stores a pointer to the root frame in its own (mostly empty)
frame, as does the root function itself.  All frames allocate this slot at
the same offset, measured from the post-prolog stack pointer, so that the
same sequence can accept any ancestor as an establisher frame parameter
value, and so that a single offset can be reported to the GC, which also
looks at this slot.

This change allocate the slot when processing function entry, and records
its frame index on the WinEHFuncInfo object, then inserts the code to
set/copy it during prolog emission.

Reviewers: majnemer, AndyAyers, pgavlin, rnk

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14614

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252983 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Introduce a new pseudo-operand for unused expression results.
Dan Gohman [Fri, 13 Nov 2015 00:21:05 +0000 (00:21 +0000)]
[WebAssembly] Introduce a new pseudo-operand for unused expression results.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252975 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoX86-FMA3: Implemented commute transformations FMA*_Int instructions.
Vyacheslav Klochkov [Fri, 13 Nov 2015 00:07:35 +0000 (00:07 +0000)]
X86-FMA3: Implemented commute transformations FMA*_Int instructions.
It made it possible to apply the memory folding optimization for the 2nd
operand of FMA*_Int instructions.

Reviewer: Quentin Colombet
Differential Revision: http://reviews.llvm.org/D14550

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252973 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SimplifyLibCalls] Make a function shorter. NFC.
Davide Italiano [Thu, 12 Nov 2015 23:39:00 +0000 (23:39 +0000)]
[SimplifyLibCalls] Make a function shorter. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252970 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Hexagon] Adding checks for values out of operand range and correct new-value produce...
Colin LeMahieu [Thu, 12 Nov 2015 23:28:01 +0000 (23:28 +0000)]
[Hexagon] Adding checks for values out of operand range and correct new-value producer usage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252969 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Hexagon] Adding test to make sure labels and register pairs are correctly parsed.
Colin LeMahieu [Thu, 12 Nov 2015 22:54:14 +0000 (22:54 +0000)]
[Hexagon] Adding test to make sure labels and register pairs are correctly parsed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252968 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agospecify triple and tighten checks using update_llc_test_checks.py
Sanjay Patel [Thu, 12 Nov 2015 22:27:38 +0000 (22:27 +0000)]
specify triple and tighten checks using update_llc_test_checks.py

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252962 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Remove unnecessary call to getAllocatableRegClass"
Tom Stellard [Thu, 12 Nov 2015 21:43:25 +0000 (21:43 +0000)]
Revert "Remove unnecessary call to getAllocatableRegClass"

This reverts commit r252565.

This also includes the revert of the commit mentioned below in order to
avoid breaking tests in AMDGPU:

Revert "AMDGPU: Set isAllocatable = 0 on VS_32/VS_64"

This reverts commit r252674.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252956 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert r252949.
Akira Hatanaka [Thu, 12 Nov 2015 21:19:18 +0000 (21:19 +0000)]
Revert r252949.

It broke some of the bots including clang-x64-ninja-win7.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252951 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoProvide a way to specify inliner's attribute compatibility and merging
Akira Hatanaka [Thu, 12 Nov 2015 20:59:43 +0000 (20:59 +0000)]
Provide a way to specify inliner's attribute compatibility and merging
rules using table-gen. NFC.

This commit adds new classes CompatRule and MergeRule to Attributes.td,
which are used to generate code to check attribute compatibility and
merge attributes of the caller and callee.

rdar://problem/19836465

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252949 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert r243347 "Add TargetTransformInfo::isZExtFree."
Sanjoy Das [Thu, 12 Nov 2015 20:51:52 +0000 (20:51 +0000)]
Revert r243347 "Add TargetTransformInfo::isZExtFree."

r243347 was intended to support a change to LSR (r243348).  That change
to LSR has since had to be reverted (r243939) because it was buggy, and
now the code added in r243347 is untested and unexercised.  Given that,
I think it is appropriate to revert r243347 for now, with the intent of
adding it back in later if I get around to checking in a fixed version
of r243348.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252948 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ImplicitNulls] Fix wrapping by breaking up a condition, NFC
Sanjoy Das [Thu, 12 Nov 2015 20:51:49 +0000 (20:51 +0000)]
[ImplicitNulls] Fix wrapping by breaking up a condition, NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252947 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ImplicitNull] Extract out a HazardDetector class, NFC
Sanjoy Das [Thu, 12 Nov 2015 20:51:44 +0000 (20:51 +0000)]
[ImplicitNull] Extract out a HazardDetector class, NFC

This will make later functional changes easier to follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252946 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodisabling sancov tests: too many failures on different platforms.
Mike Aizatsky [Thu, 12 Nov 2015 20:47:12 +0000 (20:47 +0000)]
disabling sancov tests: too many failures on different platforms.

Differential Revision: http://reviews.llvm.org/D14624

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252945 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agosancov tests - platform independent separators
Mike Aizatsky [Thu, 12 Nov 2015 20:17:49 +0000 (20:17 +0000)]
sancov tests - platform independent separators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252943 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMy first/test commit. Removed a trailing whitespace.
Vyacheslav Klochkov [Thu, 12 Nov 2015 20:11:57 +0000 (20:11 +0000)]
My first/test commit. Removed a trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252940 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Fix bug 25440: GVN assertion after coercing loads"
Tobias Grosser [Thu, 12 Nov 2015 20:04:21 +0000 (20:04 +0000)]
Revert "Fix bug 25440: GVN assertion after coercing loads"

This reverts 252919 which broke LNT: MultiSource/Applications/SPASS

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252936 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agosancov test suite
Mike Aizatsky [Thu, 12 Nov 2015 19:34:21 +0000 (19:34 +0000)]
sancov test suite

Differential Revision: http://reviews.llvm.org/D14589

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252933 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ThinLTO] Update test to be more tolerant of ordering changes
Teresa Johnson [Thu, 12 Nov 2015 19:31:46 +0000 (19:31 +0000)]
[ThinLTO] Update test to be more tolerant of ordering changes

Update the ThinLTO function importing test to use DAG forms of checks so
that it is more tolerant of changes to relative ordering between
imported decls/defs. This reduces the number of changes required by the
comdat importing patch I am sending for review shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252932 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Hexagon] Allocate MCInst in the MCContext to avoid leaking it.
Benjamin Kramer [Thu, 12 Nov 2015 19:30:40 +0000 (19:30 +0000)]
[Hexagon] Allocate MCInst in the MCContext to avoid leaking it.

Found by leaksanitizer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252931 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[LIR] Minor refactoring. NFCI.
Chad Rosier [Thu, 12 Nov 2015 19:09:16 +0000 (19:09 +0000)]
[LIR] Minor refactoring. NFCI.

This change prevents uninteresting stores from being inserted into the list of
candidate stores for memset/memcpy conversion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252926 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRoll an expression into an assert to fix -Wunused-variable in a -Asserts build
David Blaikie [Thu, 12 Nov 2015 19:07:43 +0000 (19:07 +0000)]
Roll an expression into an assert to fix -Wunused-variable in a -Asserts build

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252925 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoreverting r252916 to investigate test failure
Nathan Slingerland [Thu, 12 Nov 2015 18:39:26 +0000 (18:39 +0000)]
reverting r252916 to investigate test failure

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252921 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix bug 25440: GVN assertion after coercing loads
Weiming Zhao [Thu, 12 Nov 2015 18:19:59 +0000 (18:19 +0000)]
Fix bug 25440: GVN assertion after coercing loads

Summary:
when coercing loads, it inserts some instructions, which have no GV assigned.

https://llvm.org/bugs/show_bug.cgi?id=25440

Reviewers: hfinkel, dberlin

Subscribers: dberlin, llvm-commits

Differential Revision: http://reviews.llvm.org/D14479

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252919 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ShrinkWrap] Fix a typo in a comment.
Quentin Colombet [Thu, 12 Nov 2015 18:16:27 +0000 (18:16 +0000)]
[ShrinkWrap] Fix a typo in a comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252918 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ShrinkWrap] Make sure we do not mess up with EH funclet lowering.
Quentin Colombet [Thu, 12 Nov 2015 18:13:42 +0000 (18:13 +0000)]
[ShrinkWrap] Make sure we do not mess up with EH funclet lowering.
ShrinkWrapping does not understand exception handling constraints for now, so
make sure we do not mess with them by aborting on functions that use EH
funclets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252917 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[llvm-profdata] Add check for text profile formats and improve error reporting
Nathan Slingerland [Thu, 12 Nov 2015 18:06:18 +0000 (18:06 +0000)]
[llvm-profdata] Add check for text profile formats and improve error reporting

Summary:
This change addresses two possible instances of user error / confusion when
merging sampled profile data.

Previously any input that didn't match the raw or processed instrumented format
would automatically be interpreted as instrumented profile text format data.
No error would be reported during the merge.

Example:
If foo-sampled.profdata and bar-sampled.profdata are binary sampled profiles:

Old behavior:
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -output foobar-sampled.profdata
$ llvm-profdata show -sample foobar-sampled.profdata
error: foobar-sampled.profdata:1: Expected 'mangled_name:NUM:NUM', found  lprofi

This change adds basic checks for valid input data when assuming text input.
It also makes error messages related to file format validity more specific about
the assumbed profile data type.

New behavior:
$ llvm-profdata merge foo-sampled.profdata bar-sampled.profdata -o foobar-sampled.profdata
error: foo.profdata: Unrecognized instrumentation profile encoding format
Perhaps you forgot to use the -sample option?

Reviewers: bogner, davidxl, dnovillo

Subscribers: davidxl, llvm-commits

Differential Revision: http://reviews.llvm.org/D14558

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252916 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoSamplePGO - Move FunctionSamples::print() to a better location. NFC.
Diego Novillo [Thu, 12 Nov 2015 17:58:14 +0000 (17:58 +0000)]
SamplePGO - Move FunctionSamples::print() to a better location. NFC.

The class is declared in SampleProf.h, so a better home for this is
SampleProf.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252915 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WinEH] Fix problem with removing an element from a SetVector while iterating.
Andrew Kaylor [Thu, 12 Nov 2015 17:36:03 +0000 (17:36 +0000)]
[WinEH] Fix problem with removing an element from a SetVector while iterating.

Patch provided by Yaron Keren. (Thanks!)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252913 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoComment update. NFC.
Rafael Espindola [Thu, 12 Nov 2015 17:13:45 +0000 (17:13 +0000)]
Comment update. NFC.

Fix the library name.
Don't duplicate the comment in the .cpp file.
Don't repeat the name in the comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252911 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Reapply r252858, with svn add for the new file.
Dan Gohman [Thu, 12 Nov 2015 17:04:33 +0000 (17:04 +0000)]
[WebAssembly] Reapply r252858, with svn add for the new file.

Switch to MC for instruction printing.

This encompasses several changes which are all interconnected:
 - Use the MC framework for printing almost all instructions.
 - AsmStrings are now live.
 - This introduces an indirection between LLVM vregs and WebAssembly registers,
   and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping.
   This addresses some basic issues with argument registers and unused registers.
 - The way ARGUMENT instructions are handled no longer generates redundant
   get_local+set_local for every argument.

This also changes the assembly syntax somewhat; most notably, MC's printing
does not use sigils on label names, so those are no longer present, and
push/pop now have a sigil to keep them unambiguous.

The usage of set_local/get_local/$push/$pop will continue to evolve
significantly. This patch is just one step of a larger change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252910 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[x86] translating "fp" (floating point) instructions from {fadd,fdiv,fmul,fsub,fsubr...
Michael Zuckerman [Thu, 12 Nov 2015 16:58:51 +0000 (16:58 +0000)]
[x86] translating "fp" (floating point) instructions from {fadd,fdiv,fmul,fsub,fsubr,fdivr} to {faddp,fdivp,fmulp,fsubp,fsubrp,fdivrp}

LLVM Missing the following instructions: fadd\fdiv\fmul\fsub\fsubr\fdivr.
GAS and MS supporting this instruction and lowering them in to a faddp\fdivp\fmulp\fsubp\fsubrp\fdivrp instructions.

Differential Revision: http://reviews.llvm.org/D14217

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252908 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoCull non-standard variants of ARM architectures (NFC)
Artyom Skrobov [Thu, 12 Nov 2015 15:51:41 +0000 (15:51 +0000)]
Cull non-standard variants of ARM architectures (NFC)

Summary:
This patch changes ARMV5, ARMV5E, ARMV6SM, ARMV6HL, ARMV7, ARMV7L,
ARMV7HL, ARMV7EM to be treated as aliases for the corresponding
standard architectures, instead of as actual architectures.

Reviewers: rengolin

Subscribers: aemerson, llvm-commits, rengolin

Differential Revision: http://reviews.llvm.org/D14577

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252903 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert r252858: "[WebAssembly] Switch to MC for instruction printing."
Hans Wennborg [Thu, 12 Nov 2015 14:37:56 +0000 (14:37 +0000)]
Revert r252858: "[WebAssembly] Switch to MC for instruction printing."

It broke the CMake build:

"Cannot find source file: WebAssemblyRegNumbering.cpp"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252897 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRe-apply "[mips] Use correct frame register for DWARF info when dynamically realignin...
Vasileios Kalintiris [Thu, 12 Nov 2015 14:11:43 +0000 (14:11 +0000)]
Re-apply "[mips] Use correct frame register for DWARF info when dynamically realigning the stack.""

r252219 reversed the direction of subprogram -> function edge. Fixed the
IR to account for this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252895 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ARM] CMOV->BFI combining: handle both senses of CMPZ
James Molloy [Thu, 12 Nov 2015 13:49:17 +0000 (13:49 +0000)]
[ARM] CMOV->BFI combining: handle both senses of CMPZ

I completely misunderstood what ARMISD::CMPZ means. It's not "compare equal to zero", it's "compare, only setting the zero/Z flag". It can either be equal-to-zero or not-equal-to-zero, and we weren't checking what sense it was.

If it's equal-to-zero, we can swap the operands around and pretend like it is not-equal-to-zero, which is both a bug fix and lets us handle more cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252891 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[ARM] Enable shrink-wrapping by default."
Renato Golin [Thu, 12 Nov 2015 13:34:50 +0000 (13:34 +0000)]
Revert "[ARM] Enable shrink-wrapping by default."

This reverts commit r252825, as it broke ASAN on ARM. Investigating...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252889 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoImplement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32.
Daniel Sanders [Thu, 12 Nov 2015 13:33:00 +0000 (13:33 +0000)]
Implement .reloc (constant offset only) with support for R_MIPS_NONE and R_MIPS_32.

Summary:
Support for R_MIPS_NONE allows us to parse MIPS16's usage of .reloc.
R_MIPS_32 was included to be able to better test the directive.

Targets can add their relocations by overriding MCAsmBackend::getFixupKind().

Subscribers: grosbach, rafael, majnemer, dsanders, llvm-commits

Differential Revision: http://reviews.llvm.org/D13659

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252888 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions
Zlatko Buljan [Thu, 12 Nov 2015 13:21:33 +0000 (13:21 +0000)]
[mips][microMIPS] Implement LWM16, SB16, SH16, SW16, SWSP and SWM16 instructions
Differential Revision: http://reviews.llvm.org/D11406

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252885 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[mips] Use correct frame register for DWARF info when dynamically realigning...
Vasileios Kalintiris [Thu, 12 Nov 2015 13:19:11 +0000 (13:19 +0000)]
Revert "[mips] Use correct frame register for DWARF info when dynamically realigning the stack."

This reverts commit r252882. LLParser complains for invalid field 'function'
in DISubprogram.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252884 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRemove mention of {ADD,SUB}_PARTS. They were removed in r26255.
Hans Wennborg [Thu, 12 Nov 2015 13:18:20 +0000 (13:18 +0000)]
Remove mention of {ADD,SUB}_PARTS. They were removed in r26255.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252883 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[mips] Use correct frame register for DWARF info when dynamically realigning the...
Vasileios Kalintiris [Thu, 12 Nov 2015 13:04:16 +0000 (13:04 +0000)]
[mips] Use correct frame register for DWARF info when dynamically realigning the stack.

Summary:
This patch overrides TargetFrameLowering::getFrameIndexReference() in order to
specify the correct register when the function needs dynamic stack realignment.
The values returned from this function are used in order to create DW_AT_locations
for DWARF info. These locations would use the wrong registers as it's been
reported in PR25028.

Reviewers: dsanders

Subscribers: dean, llvm-commits

Differential Revision: http://reviews.llvm.org/D13511

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252882 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[InstCombine] Add trivial folding (bitreverse (bitreverse x)) -> x
James Molloy [Thu, 12 Nov 2015 12:39:41 +0000 (12:39 +0000)]
[InstCombine] Add trivial folding (bitreverse (bitreverse x)) -> x

There are plenty more instcombines we could probably do with bitreverse, but this seems like a very obvious and trivial starting point and was brought up by Hal in his review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252879 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[SDAG] Introduce a new BITREVERSE node along with a corresponding LLVM intrinsic
James Molloy [Thu, 12 Nov 2015 12:29:09 +0000 (12:29 +0000)]
[SDAG] Introduce a new BITREVERSE node along with a corresponding LLVM intrinsic

Several backends have instructions to reverse the order of bits in an integer. Conceptually matching such patterns is similar to @llvm.bswap, and it was mentioned in http://reviews.llvm.org/D14234 that it would be best if these patterns were matched in InstCombine instead of reimplemented in every different target.

This patch introduces an intrinsic @llvm.bitreverse.i* that operates similarly to @llvm.bswap. For plumbing purposes there is also a new ISD node ISD::BITREVERSE, with simple expansion and promotion support.

The intention is that InstCombine's BSWAP detection logic will be extended to support BITREVERSE too, and @llvm.bitreverse intrinsics emitted (if the backend supports lowering it efficiently).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252878 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "Revert "[FunctionAttrs] Identify norecurse functions""
James Molloy [Thu, 12 Nov 2015 10:55:20 +0000 (10:55 +0000)]
Revert "Revert "[FunctionAttrs] Identify norecurse functions""

This reapplies this patch, with test fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252871 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[Object, MachO] Mark symbols from DATA and BSS sections as ST_Data
Kuba Brecka [Thu, 12 Nov 2015 09:40:29 +0000 (09:40 +0000)]
[Object, MachO] Mark symbols from DATA and BSS sections as ST_Data

In `MachOObjectFile::getSymbolType` we currently always return `SymbolRef::ST_Function` for symbols from any section. In order for llvm-symbolizer to correctly symbolize Mach-O globals, symbols from data and BSS sections should return `SymbolRef::ST_Data`.

Differential Revision: http://reviews.llvm.org/D14576

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252867 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodwarfdump: Added macro support to llvm-dwarfdump tool.
Amjad Aboud [Thu, 12 Nov 2015 09:38:54 +0000 (09:38 +0000)]
dwarfdump: Added macro support to llvm-dwarfdump tool.

Added "macro" option to "-debug-dump" flag, which trigger parsing and dumping of the ".debug_macinfo" section.

Differential Revision: http://reviews.llvm.org/D14294

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252866 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdd AVR backend skeleton
Dylan McKay [Thu, 12 Nov 2015 09:26:44 +0000 (09:26 +0000)]
Add AVR backend skeleton

This adds part of the target info code, and adds modifications to
the build scripts so that AVR is recognized a supported, experimental
backend.

It does not include any AVR-specific code, just the bare sources required
for a backend to exist.

From D14039.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252865 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoRevert "[FunctionAttrs] Identify norecurse functions"
James Molloy [Thu, 12 Nov 2015 09:05:43 +0000 (09:05 +0000)]
Revert "[FunctionAttrs] Identify norecurse functions"

This reverts commit r252862. This introduced test failures and I'm reverting while I investigate how this happened.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252863 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[FunctionAttrs] Identify norecurse functions
James Molloy [Thu, 12 Nov 2015 08:53:04 +0000 (08:53 +0000)]
[FunctionAttrs] Identify norecurse functions

A function can be marked as norecurse if:
  * The SCC to which it belongs has cardinality 1; and either
    a) It does not call any non-norecurse function. This includes self-recursion; or
    b) It only has one callsite and the function that callsite is within is marked norecurse.

a) is best propagated bottom-up and b) is best propagated top-down.

We build up the norecurse attributes bottom-up using the existing SCC pass, and mark functions with no obvious recursion (but not provably norecurse) to sweep later, top-down.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252862 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoMostly revert 252842 due to failures on some buildbots.
David Blaikie [Thu, 12 Nov 2015 06:33:14 +0000 (06:33 +0000)]
Mostly revert 252842 due to failures on some buildbots.

I imagine there's some UB in here somewhere, though Valgrind doesn't
seem to have picked it up (not sure if I have a working asan build right
now to test there).

GDB bot seems to be crashing:
http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/26267/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test

Hexagon ELF bot is, presumably, just getting different output:
http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/32927/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252859 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WebAssembly] Switch to MC for instruction printing.
Dan Gohman [Thu, 12 Nov 2015 06:10:03 +0000 (06:10 +0000)]
[WebAssembly] Switch to MC for instruction printing.

This encompasses several changes which are all interconnected:
 - Use the MC framework for printing almost all instructions.
 - AsmStrings are now live.
 - This introduces an indirection between LLVM vregs and WebAssembly registers,
   and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping.
   This addresses some basic issues with argument registers and unused registers.
 - The way ARGUMENT instructions are handled no longer generates redundant
   get_local+set_local for every argument.

This also changes the assembly syntax somewhat; most notably, MC's printing
use sigils on label names, so those are no longer present, and push/pop now
have a sigil to keep them unambiguous.

The usage of set_local/get_local/$push/$pop will continue to evolve
significantly. This patch is just one step of a larger change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252858 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agooutput_csv libfuzzer option
Mike Aizatsky [Thu, 12 Nov 2015 04:38:40 +0000 (04:38 +0000)]
output_csv libfuzzer option

Summary:
The option outputs statistics in CSV format preceded by 1 header line.
This is intended for machine processing of the output.
-verbosity=0 should likely be set.

Differential Revision: http://reviews.llvm.org/D14600

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252856 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodwarfdump: Add error checking to fix the buildbots/correctness
David Blaikie [Thu, 12 Nov 2015 01:57:33 +0000 (01:57 +0000)]
dwarfdump: Add error checking to fix the buildbots/correctness

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252845 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodwarfdump: Add some error handling for DWP index sections of the wrong size
David Blaikie [Thu, 12 Nov 2015 01:41:59 +0000 (01:41 +0000)]
dwarfdump: Add some error handling for DWP index sections of the wrong size

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252843 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodwarfdump: Dump the contents of DWP indexes
David Blaikie [Thu, 12 Nov 2015 01:41:52 +0000 (01:41 +0000)]
dwarfdump: Dump the contents of DWP indexes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252842 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoLegalizeDAG: Fix and improve FCOPYSIGN/FABS legalization
Matthias Braun [Thu, 12 Nov 2015 01:02:47 +0000 (01:02 +0000)]
LegalizeDAG: Fix and improve FCOPYSIGN/FABS legalization

- Factor out code to query and modify the sign bit of a floatingpoint
  value as an integer. This also works if none of the targets integer
  types is big enough to hold all bits of the floatingpoint value.

- Legalize FABS(x) as FCOPYSIGN(x, 0.0) if FCOPYSIGN is available,
  otherwise perform bit manipulation on the sign bit. The previous code
  used "x >u 0 ? x : -x" which is incorrect for x being -0.0! It also
  takes 34 instructions on ARM Cortex-M4. With this patch we only
  require 5:
    vldr d0, LCPI0_0
    vmov r2, r3, d0
    lsrs r2, r3, #31
    bfi r1, r2, #31, #1
    bx lr
  (This could be further improved if the compiler would recognize that
   r2, r3 is zero).

- Only lower FCOPYSIGN(x, y) = sign(x) ? -FABS(x) : FABS(x) if FABS is
  available otherwise perform bit manipulation on the sign bit.

- Perform the sign(x) test by masking out the sign bit and comparing
  with 0 rather than shifting the sign bit to the highest position and
  testing for "<s 0". For x86 copysignl (on 80bit values) this gets us:
    testl $32768, %eax
  rather than:
    shlq $48, %rax
    sets %al
    testb %al, %al

Differential Revision: http://reviews.llvm.org/D11172

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252839 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[libFuzzer] experimental flag -drill (another search heuristic; Mike Aizatsky's idea)
Kostya Serebryany [Thu, 12 Nov 2015 01:02:01 +0000 (01:02 +0000)]
[libFuzzer] experimental flag -drill (another search heuristic; Mike Aizatsky's idea)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252838 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[TLS on Darwin] use a different mask for tls calls on x86-64.
Manman Ren [Thu, 12 Nov 2015 00:54:04 +0000 (00:54 +0000)]
[TLS on Darwin] use a different mask for tls calls on x86-64.

Calls involved in thread-local variable lookup save more registers
than normal calls.

rdar://problem/23073171

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252837 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodwarfdump: Use the right enum for the tu_index section
David Blaikie [Thu, 12 Nov 2015 00:44:35 +0000 (00:44 +0000)]
dwarfdump: Use the right enum for the tu_index section

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252835 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agodwarfdump: add command line support for dumping the tu_index section
David Blaikie [Thu, 12 Nov 2015 00:42:49 +0000 (00:42 +0000)]
dwarfdump: add command line support for dumping the tu_index section

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252830 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix problems in coding style
Xinliang David Li [Thu, 12 Nov 2015 00:32:17 +0000 (00:32 +0000)]
Fix problems in coding style

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252829 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[ARM] Enable shrink-wrapping by default.
Quentin Colombet [Wed, 11 Nov 2015 23:31:46 +0000 (23:31 +0000)]
[ARM] Enable shrink-wrapping by default.

Differential Revision: http://reviews.llvm.org/D14357

rdar://problem/21942589

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252825 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[WinEH] Don't forward branches across empty EH pad BBs
Reid Kleckner [Wed, 11 Nov 2015 23:09:31 +0000 (23:09 +0000)]
[WinEH] Don't forward branches across empty EH pad BBs

For really simple SEH catchpads, we tried to forward the invoke unwind
edge across the empty block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252822 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[LIR] General refactor to improve compile-time and simplify code.
Chad Rosier [Wed, 11 Nov 2015 23:00:59 +0000 (23:00 +0000)]
[LIR] General refactor to improve compile-time and simplify code.

First create a list of candidates, then transform.  This simplifies the code in
that you have don't have to worry that you may be using an invalidated
iterator.

Previously, each time we created a memset/memcpy we would reevaluate the entire
loop potentially resulting in lots of redundant work for large basic blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252817 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoFix docs build break for revision r252798
Hemant Kulkarni [Wed, 11 Nov 2015 22:14:58 +0000 (22:14 +0000)]
Fix docs build break for revision r252798

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252812 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[IR] Add support for empty tokens
David Majnemer [Wed, 11 Nov 2015 21:57:16 +0000 (21:57 +0000)]
[IR] Add support for empty tokens

When working with tokens, it is often the case that one has instructions
which consume a token and produce a new token.  Currently, we have no
mechanism to represent an initial token state.

Instead, we can create a notional "empty token" by inventing a new
constant which captures the semantics we would like.  This new constant
is called ConstantTokenNone and is written textually as "token none".

Differential Revision: http://reviews.llvm.org/D14581

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252811 91177308-0d34-0410-b5e6-96231b3b80d8

9 years ago[CMake] Fixing passthrough for variables starting with the sub-project name
Chris Bieneman [Wed, 11 Nov 2015 21:54:31 +0000 (21:54 +0000)]
[CMake] Fixing passthrough for variables starting with the sub-project name

This allows TEST_SUITE variables to be passed from the top-level CMake into the external project.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252810 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoIntroduce deoptimization operand bundles
Sanjoy Das [Wed, 11 Nov 2015 21:38:02 +0000 (21:38 +0000)]
Introduce deoptimization operand bundles

Summary:
This change introduces the notion of "deoptimization" operand bundles.
LLVM can recognize and optimize these in more precise ways than it can a
generic "unknown" operand bundles.

The current form of this special recognition / optimization is an enum
entry in LLVMContext, a LangRef blurb and a verifier rule.  Over time we
will teach LLVM to do more aggressive optimization around deoptimization
operand bundles, exploiting known facts about kinds of state
deoptimization operand bundles are allowed to track.

Reviewers: reames, majnemer, chandlerc, dexonsmith

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14551

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252806 91177308-0d34-0410-b5e6-96231b3b80d8

9 years agoAdding qualifier for make_unique.
Mike Aizatsky [Wed, 11 Nov 2015 21:28:40 +0000 (21:28 +0000)]
Adding qualifier for make_unique.

Summary: MSVC gets confused.

Differential Revision: http://reviews.llvm.org/D14585

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252804 91177308-0d34-0410-b5e6-96231b3b80d8