platform/upstream/llvm.git
8 years ago[clang-tidy] Updates to documentation: formatting, titles, etc.
Alexander Kornienko [Tue, 22 Dec 2015 17:36:49 +0000 (17:36 +0000)]
[clang-tidy] Updates to documentation: formatting, titles, etc.

llvm-svn: 256259

8 years ago[Support] Allow multiple paired calls to {start,stop}Timer()
Vedant Kumar [Tue, 22 Dec 2015 17:36:17 +0000 (17:36 +0000)]
[Support] Allow multiple paired calls to {start,stop}Timer()

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

Reviewed-by: rafael
llvm-svn: 256258

8 years agoskip TestEvents.py on Darwin
Todd Fiala [Tue, 22 Dec 2015 17:24:31 +0000 (17:24 +0000)]
skip TestEvents.py on Darwin

This is generating a SIGSEGV somewhere around 1 in 10 runs on OS X.

Skip the whole test to avoid testbot noise until we can get the
SIGSEGV addressed.

Tracking with:
https://llvm.org/bugs/show_bug.cgi?id=25924

llvm-svn: 256257

8 years agofix a gcc warning
Nico Weber [Tue, 22 Dec 2015 17:22:25 +0000 (17:22 +0000)]
fix a gcc warning

llvm-svn: 256256

8 years agotest infra: fix lldbinline tests to work with rerun
Todd Fiala [Tue, 22 Dec 2015 17:14:47 +0000 (17:14 +0000)]
test infra: fix lldbinline tests to work with rerun

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

llvm-svn: 256255

8 years agoUpdated year (2014-2015).
Alexander Kornienko [Tue, 22 Dec 2015 17:10:34 +0000 (17:10 +0000)]
Updated year (2014-2015).

llvm-svn: 256254

8 years ago[clang-tools-extra] Text formatting
Alexander Kornienko [Tue, 22 Dec 2015 17:08:57 +0000 (17:08 +0000)]
[clang-tools-extra] Text formatting

llvm-svn: 256253

8 years ago[RS4GC] Fix crash in the case that a live variable has a constant base.
Manuel Jacob [Tue, 22 Dec 2015 16:50:44 +0000 (16:50 +0000)]
[RS4GC] Fix crash in the case that a live variable has a constant base.

Summary:
Previously, RS4GC crashed in CreateGCRelocates() because it assumed
that every base is also in the array of live variables, which isn't true if a
live variable has a constant base.

This change fixes the crash by making sure CreateGCRelocates() won't try to
relocate a live variable with a constant base.  This would be unnecessary
anyway because anything with a constant base won't move.

Reviewers: reames

Subscribers: llvm-commits, sanjoy

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

llvm-svn: 256252

8 years agoImprove error handling for `frame select` command when there are too many arguments.
Adrian McCarthy [Tue, 22 Dec 2015 16:50:28 +0000 (16:50 +0000)]
Improve error handling for `frame select` command when there are too many arguments.

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

It now gives a more specific error message and then returns instead of trying to select the wrong frame.

llvm-svn: 256251

8 years agoAdd expectedFailureFreeBSD to tests failing in the same way as on Linux
Ed Maste [Tue, 22 Dec 2015 16:47:04 +0000 (16:47 +0000)]
Add expectedFailureFreeBSD to tests failing in the same way as on Linux

llvm.org/pr25819

llvm-svn: 256250

8 years ago[AArch64] Promote loads from stored
Jun Bum Lim [Tue, 22 Dec 2015 16:36:16 +0000 (16:36 +0000)]
[AArch64] Promote loads from stored

This is a recommit of r256004 which was reverted in r256160. The issue was the
incorrect promotion for half and byte loads transformed into mov instructions.
This fix will replace half and byte type loads only with bit field extracts.

Original commit message:

This change promotes load instructions which directly read from stored by
replacing them with mov instructions. If the store is wider than the load,
the load will be replaced with a bitfield extract.
For example :
  STRWui %W1, %X0, 1
  %W0 = LDRHHui %X0, 3
becomes
  STRWui %W1, %X0, 1
  %W0 = UBFMWri %W1, 16, 31

llvm-svn: 256249

8 years agoRemove PC -1 offset from FreeBSD arm64 UpdateAfterBreakpoint
Ed Maste [Tue, 22 Dec 2015 15:57:21 +0000 (15:57 +0000)]
Remove PC -1 offset from FreeBSD arm64 UpdateAfterBreakpoint

It was a copy-and-paste leftover.

llvm-svn: 256248

8 years agoclang-format: [JS] Support arrays of object-type literals.
Daniel Jasper [Tue, 22 Dec 2015 15:48:35 +0000 (15:48 +0000)]
clang-format: [JS] Support arrays of object-type literals.

Before:
  interface I {
    o: {}
    [];
  }

After:
  interface I {
    o: {}[];
  }

llvm-svn: 256247

8 years agoclang-format: [JS] Conservatively introduce column layout for JS array
Daniel Jasper [Tue, 22 Dec 2015 15:48:15 +0000 (15:48 +0000)]
clang-format: [JS] Conservatively introduce column layout for JS array
initializers. For now, only use it for 20 items or more. Otherwise,
clang-format formats these one-per-line and thus increases the vertical
code size a lot.

llvm-svn: 256246

8 years agoclang-format: [JS] "operator" is not a keyword in Java/JavaScript.
Daniel Jasper [Tue, 22 Dec 2015 15:47:56 +0000 (15:47 +0000)]
clang-format: [JS] "operator" is not a keyword in Java/JavaScript.

llvm-svn: 256245

8 years agoDon't pack the structs of the jit debug interface
Tamas Berghammer [Tue, 22 Dec 2015 15:23:33 +0000 (15:23 +0000)]
Don't pack the structs of the jit debug interface

None of the documentation mentions that the entries are packed structs
and also none of the other implementation I found pack them.

Differential revision: http://reviews.llvm.org/D15715

llvm-svn: 256244

8 years ago[OpenCL] Fix atomic Builtins check for address spaces of non-atomic pointer
Anastasia Stulova [Tue, 22 Dec 2015 15:14:54 +0000 (15:14 +0000)]
[OpenCL] Fix atomic Builtins check for address spaces of non-atomic pointer

If there are two pointers passed to an atomic Builtin,
Clang doesn't allow the second (non-atomic) one to be qualified
with an address space.

Remove this restriction by recording the address space of passed pointers
in atomics type diagnostics.

llvm-svn: 256243

8 years agoTypo. NFC.
Chad Rosier [Tue, 22 Dec 2015 15:06:47 +0000 (15:06 +0000)]
Typo. NFC.

llvm-svn: 256242

8 years agoFix ARM __cxa_end_cleanup() and gc-sections.
Logan Chien [Tue, 22 Dec 2015 14:38:30 +0000 (14:38 +0000)]
Fix ARM __cxa_end_cleanup() and gc-sections.

This commit adds SHF_ALLOC and SHF_EXECINSTR section flags to
`.text.__cxa_end_cleanup` section.  This fixes a link error when we are
using integrated-as and `ld.gold` (with `-Wl,--gc-sections` and
`-Wl,--fatal-warnings`.)

Detailed Explanation:

1. There might be some problem with LLVM integrated-as.  It is not
   emitting any section flags for text sections.  (This will be fixed in
   an independent commit.)

2. `ld.gold` will skip the external symbols in the section without
   SHF_ALLOC.  This is the reason why `.text.__cxa_end_cleanup_impl`
   section is discarded even though it is referenced by
   `__cxa_end_cleanup()`.

This commit workaround the problem by specifying the section flags
explicitly.

Fix http://llvm.org/PR21292

llvm-svn: 256241

8 years ago[mips] Add _GCC_HAVE_SYNC_COMPARE_AND_SWAP macros.
Daniel Sanders [Tue, 22 Dec 2015 12:59:30 +0000 (12:59 +0000)]
[mips] Add _GCC_HAVE_SYNC_COMPARE_AND_SWAP macros.

This fixes the 'pure virtual function called' failure with ThreadPool in a
clang-built clang. This fixes the llvm-mips-linux builder.

llvm-svn: 256240

8 years ago[OPENMP] Revert r256238 to fix the problem with tests on Linux.
Alexey Bataev [Tue, 22 Dec 2015 12:44:46 +0000 (12:44 +0000)]
[OPENMP] Revert r256238 to fix the problem with tests on Linux.

llvm-svn: 256239

8 years ago[OPENMP 4.5] Parsing/sema for 'depend(sink:vec)' clause in 'ordered' directive.
Alexey Bataev [Tue, 22 Dec 2015 12:21:47 +0000 (12:21 +0000)]
[OPENMP 4.5] Parsing/sema for 'depend(sink:vec)' clause in 'ordered' directive.
OpenMP 4.5 adds 'depend(sink:vec)' in 'ordered' directive for doacross loop synchronization. Patch adds parsing and semantic analysis for this clause.

llvm-svn: 256238

8 years ago[X86][AVX512] Add rcp14 and rsqrt14 intrinsics
Asaf Badouh [Tue, 22 Dec 2015 11:40:04 +0000 (11:40 +0000)]
[X86][AVX512] Add rcp14 and rsqrt14 intrinsics

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

llvm-svn: 256237

8 years ago[ASMPrinter] Fix missing handling of DW_OP_bit_piece
Keno Fischer [Tue, 22 Dec 2015 07:14:50 +0000 (07:14 +0000)]
[ASMPrinter] Fix missing handling of DW_OP_bit_piece

In r256077, I added printing for DIExpressions in DEBUG_VALUE comments,
but neglected to handle DW_OP_bit_piece operands. Thanks to
Mikael Holmen and Joerg Sonnenberger for spotting this.

llvm-svn: 256236

8 years agoPull out a bunch of duplicated option handling code into its own
Eric Christopher [Tue, 22 Dec 2015 03:12:34 +0000 (03:12 +0000)]
Pull out a bunch of duplicated option handling code into its own
function and use for the targets that can easily support it.

llvm-svn: 256230

8 years ago[libFuzzer] add AFL-style dictionary for C++, remove the old file with tokens
Kostya Serebryany [Tue, 22 Dec 2015 01:50:51 +0000 (01:50 +0000)]
[libFuzzer] add AFL-style dictionary for C++, remove the old file with tokens

llvm-svn: 256229

8 years agoUse -no-canonical-prefixes to make sure binaries names are easier to match.
Eric Christopher [Tue, 22 Dec 2015 01:45:45 +0000 (01:45 +0000)]
Use -no-canonical-prefixes to make sure binaries names are easier to match.

llvm-svn: 256228

8 years agoBlockGenerators: Remove unnecessary const_cast
Tobias Grosser [Tue, 22 Dec 2015 01:41:25 +0000 (01:41 +0000)]
BlockGenerators: Remove unnecessary const_cast

llvm-svn: 256227

8 years ago[MC] Don't use the architecture to govern which object file format to use
David Majnemer [Tue, 22 Dec 2015 01:39:04 +0000 (01:39 +0000)]
[MC] Don't use the architecture to govern which object file format to use

InitMCObjectFileInfo was trying to override the triple in awkward ways.
For example, a triple specifying COFF but not Windows was forced as ELF.
This makes it easy for internal invariants to get violated, such as
those which triggered PR25912.

This fixes PR25912.

llvm-svn: 256226

8 years agoPartial fix for PR25912, see comment 13. Should fix the sanitizer bootstrap bot
Kostya Serebryany [Tue, 22 Dec 2015 01:18:49 +0000 (01:18 +0000)]
Partial fix for PR25912, see comment 13. Should fix the sanitizer bootstrap bot

llvm-svn: 256225

8 years agoHandle empty Subprogram list when linking metadata.
Teresa Johnson [Tue, 22 Dec 2015 01:17:19 +0000 (01:17 +0000)]
Handle empty Subprogram list when linking metadata.

Use an iterator that handles an empty subprogram list.

Fixes PR25915.

llvm-svn: 256224

8 years agoNo need for a custom function here; just use what C provides
Enrico Granata [Tue, 22 Dec 2015 00:47:36 +0000 (00:47 +0000)]
No need for a custom function here; just use what C provides

llvm-svn: 256223

8 years agoDetermine callee's hotness and adjust threshold based on that. NFC.
Easwaran Raman [Tue, 22 Dec 2015 00:32:35 +0000 (00:32 +0000)]
Determine callee's hotness and adjust threshold based on that. NFC.

This uses the same criteria used in CFE's CodeGenPGO to identify hot and cold
callees and uses values of inlinehint-threshold and inlinecold-threshold
respectively as the thresholds for such callees.

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

llvm-svn: 256222

8 years ago[safestack] Add option for non-TLS unsafe stack pointer.
Evgeniy Stepanov [Tue, 22 Dec 2015 00:13:11 +0000 (00:13 +0000)]
[safestack] Add option for non-TLS unsafe stack pointer.

This patch adds an option, -safe-stack-no-tls, for using normal
storage instead of thread-local storage for the unsafe stack pointer.
This can be useful when SafeStack is applied to an operating system
kernel.

http://reviews.llvm.org/D15673

Patch by Michael LeMay.

llvm-svn: 256221

8 years ago[PGO] Fix another comdat related issue for COFF
Xinliang David Li [Tue, 22 Dec 2015 00:11:15 +0000 (00:11 +0000)]
[PGO] Fix another comdat related issue for COFF

The linker requires that a comdat section must be associated
with a another comdat section that precedes it. This
means the comdat section's name needs to use the  profile name
var's name.

Patch tested by Johan Engelen.

llvm-svn: 256220

8 years agoRemove an empty folder
Enrico Granata [Tue, 22 Dec 2015 00:00:35 +0000 (00:00 +0000)]
Remove an empty folder

llvm-svn: 256219

8 years ago[Support] Timer: Use emplace_back() and range-based loops (NFC)
Vedant Kumar [Mon, 21 Dec 2015 23:41:38 +0000 (23:41 +0000)]
[Support] Timer: Use emplace_back() and range-based loops (NFC)

llvm-svn: 256217

8 years ago[WebAssembly] Remove the -target command-line flag from the ld commandline.
Dan Gohman [Mon, 21 Dec 2015 23:30:41 +0000 (23:30 +0000)]
[WebAssembly] Remove the -target command-line flag from the ld commandline.

This flag isn't needed, or permitted, with the "ld" flavor of lld.

Also, add a basic ld commandline test.

llvm-svn: 256216

8 years ago[Support] Timer: simplify the init() method
Vedant Kumar [Mon, 21 Dec 2015 23:27:44 +0000 (23:27 +0000)]
[Support] Timer: simplify the init() method

llvm-svn: 256215

8 years ago[AVR] Added configuration file and machine function information class
Dylan McKay [Mon, 21 Dec 2015 23:13:15 +0000 (23:13 +0000)]
[AVR] Added configuration file and machine function information class

This commit adds the 'AVRMachineFunctionInfo' class, which simply stores
basic properties about generated machine functions.

llvm-svn: 256213

8 years agoReduce code duplication
Enrico Granata [Mon, 21 Dec 2015 23:10:17 +0000 (23:10 +0000)]
Reduce code duplication

llvm-svn: 256212

8 years agoFix line endings after r256155. NFC.
Eric Christopher [Mon, 21 Dec 2015 23:04:27 +0000 (23:04 +0000)]
Fix line endings after r256155. NFC.

llvm-svn: 256211

8 years agoScopInfo: Small improvement to schedule construction [NFC]
Tobias Grosser [Mon, 21 Dec 2015 23:01:53 +0000 (23:01 +0000)]
ScopInfo: Small improvement to schedule construction [NFC]

We clarify that certain code is only executed if LSchedule is != nullptr.
Previously some of these functions have been executed, but they only passed
a nullptr through. This caused some confusion when reading the code.

llvm-svn: 256209

8 years agoScopInfo: Polish the implementation of mapToDimension
Tobias Grosser [Mon, 21 Dec 2015 22:45:53 +0000 (22:45 +0000)]
ScopInfo: Polish the implementation of mapToDimension

Besides improving the documentation and the code we now assert in case the input
is invalid (N < 0) and also do not any more return a nullptr in case USet is
empty. This should make the code more readable.

llvm-svn: 256208

8 years ago[asan] Add mincore test.
Evgeniy Stepanov [Mon, 21 Dec 2015 22:35:03 +0000 (22:35 +0000)]
[asan] Add mincore test.

ASan does not really do anything interesting with mincore, but this
test verifies that the function still works correctly.

llvm-svn: 256207

8 years agoFix test case comment (NFC)
Xinliang David Li [Mon, 21 Dec 2015 22:26:49 +0000 (22:26 +0000)]
Fix test case comment (NFC)

llvm-svn: 256206

8 years ago[cfi] Fix LowerBitSets on 32-bit targets.
Evgeniy Stepanov [Mon, 21 Dec 2015 22:14:04 +0000 (22:14 +0000)]
[cfi] Fix LowerBitSets on 32-bit targets.

This code attempts to truncate IntPtrTy to i32, which may be the same
type.

llvm-svn: 256205

8 years ago[clang-cl] Add support for /Brepro
David Majnemer [Mon, 21 Dec 2015 22:09:34 +0000 (22:09 +0000)]
[clang-cl] Add support for /Brepro

The /Brepro flag controls whether or not the compiler should embed
timestamps into the object file.  Object files which do not embed
timestamps are not suitable for incremental linking but are suitable for
hermetic build systems and staged self-hosts of clang.

A normal clang spelling of this flag has been added,
-mincremental-linker-compatible.

llvm-svn: 256204

8 years ago[MC, COFF] Support link /incremental conditionally
David Majnemer [Mon, 21 Dec 2015 22:09:27 +0000 (22:09 +0000)]
[MC, COFF] Support link /incremental conditionally

Today, we always take into account the possibility that object files
produced by MC may be consumed by an incremental linker.  This results
in us initialing fields which vary with time (TimeDateStamp) which harms
hermetic builds (e.g. verifying a self-host went well) and produces
sub-optimal code because we cannot assume anything about the relative
position of functions within a section (call sites can get redirected
through incremental linker thunks).

Let's provide an MCTargetOption which controls this behavior so that we
can disable this functionality if we know a-priori that the build will
not rely on /incremental.

llvm-svn: 256203

8 years agoEnhance BranchProbabilityInfo::calcUnreachableHeuristics for InvokeInst
Jun Bum Lim [Mon, 21 Dec 2015 22:00:51 +0000 (22:00 +0000)]
Enhance BranchProbabilityInfo::calcUnreachableHeuristics for InvokeInst

This is recommit of r256028 with minor fixes in unittests:
  CodeGen/Mips/eh.ll
  CodeGen/Mips/insn-zero-size-bb.ll

Original commit message:

When identifying blocks post-dominated by an unreachable-terminated block
in BranchProbabilityInfo, consider only the edge to the normal destination
block if the terminator is InvokeInst and let calcInvokeHeuristics() decide
edge weights for the InvokeInst.

llvm-svn: 256202

8 years agoResubmit r256193 with test fix: assertion failure analyzed
Xinliang David Li [Mon, 21 Dec 2015 21:52:27 +0000 (21:52 +0000)]
Resubmit r256193 with test fix: assertion failure analyzed

llvm-svn: 256201

8 years agoDrop remaining uses of the Base typedef idiom.
Rafael Espindola [Mon, 21 Dec 2015 21:07:31 +0000 (21:07 +0000)]
Drop remaining uses of the Base typedef idiom.

llvm-svn: 256200

8 years agoAdd option to assume single-loop scops with sufficient compute are profitable
Tobias Grosser [Mon, 21 Dec 2015 21:00:43 +0000 (21:00 +0000)]
Add option to assume single-loop scops with sufficient compute are profitable

If a loop has a sufficiently large amount of compute instruction in its loop
body, it is unlikely that our rewrite of the loop iterators introduces large
performance changes. As Polly can also apply beneficical optimizations (such
as parallelization) to such loop nests, we mark them as profitable.

This option is currently "disabled" by default, but can be used to run
experiments. If enabled by setting it e.g. to 40 instructions, we currently
see some compile-time increases on LNT without any significant run-time
changes.

llvm-svn: 256199

8 years agoRevert r256193: build bot failure triggered
Xinliang David Li [Mon, 21 Dec 2015 21:00:33 +0000 (21:00 +0000)]
Revert r256193: build bot failure triggered

llvm-svn: 256198

8 years agoSimplify types. NFC.
Rafael Espindola [Mon, 21 Dec 2015 20:59:29 +0000 (20:59 +0000)]
Simplify types. NFC.

llvm-svn: 256197

8 years agoRemove unnecessary cast.
Rafael Espindola [Mon, 21 Dec 2015 20:50:51 +0000 (20:50 +0000)]
Remove unnecessary cast.

llvm-svn: 256196

8 years agoRemove simple uses of Base::.
Rafael Espindola [Mon, 21 Dec 2015 20:47:33 +0000 (20:47 +0000)]
Remove simple uses of Base::.

They have a tendency to get out of date and obscure where the value/type
is from.

llvm-svn: 256195

8 years ago[X86][SSE] Transform truncations between vectors of integers into X86ISD::PACKUS...
Cong Hou [Mon, 21 Dec 2015 20:42:43 +0000 (20:42 +0000)]
[X86][SSE] Transform truncations between vectors of integers into X86ISD::PACKUS/PACKSS operations during DAG combine.

This patch transforms truncation between vectors of integers into
X86ISD::PACKUS/PACKSS operations during DAG combine. We don't do it in
lowering phase because after type legalization, the original truncation
will be turned into a BUILD_VECTOR with each element that is extracted
from a vector and then truncated, and from them it is difficult to do
this optimization. This greatly improves the performance of truncations
on some specific types.

Cost table is updated accordingly.

Differential revision: http://reviews.llvm.org/D14588

llvm-svn: 256194

8 years ago[PGO] Fix profile var comdat generation problem with COFF
Xinliang David Li [Mon, 21 Dec 2015 20:41:20 +0000 (20:41 +0000)]
[PGO] Fix profile var comdat generation problem with COFF

When targeting COFF, it is required that a comdat section to
have a global obj with the same name as the comdat (except for
comdats with select kind to be associative). This fix makes
sure that the comdat is keyed on the data variable for COFF.

Also improved test coverage for this.

llvm-svn: 256193

8 years ago[ValueTracking] Properly handle non-sized types in isAligned function.
Michael Zolotukhin [Mon, 21 Dec 2015 20:38:18 +0000 (20:38 +0000)]
[ValueTracking] Properly handle non-sized types in isAligned function.

Reviewers: apilipenko, reames, sanjoy, hfinkel

Subscribers: llvm-commits

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

llvm-svn: 256192

8 years agoTweak myriad-toolchain test.
James Y Knight [Mon, 21 Dec 2015 20:30:49 +0000 (20:30 +0000)]
Tweak myriad-toolchain test.

The test failed when run on a SPARC host, since it was finding the
native gcc installation by accident.

llvm-svn: 256191

8 years agoReapply "[CodeGen] Fix assignments of inline layouts into the byref structure"
Vedant Kumar [Mon, 21 Dec 2015 20:21:15 +0000 (20:21 +0000)]
Reapply "[CodeGen] Fix assignments of inline layouts into the byref structure"

When using blocks, a byref structure is created to represent the
closure. The "byref.layout" field of this structure is an i8*. However,
some 'inline' layouts are represented as i64's, not i8*'s.

Prior to r246985 we cast the i64 'inline' layout to an i8* before
assigning it into the byref structure. This patch brings the cast back
and adds a regression test.

The original version of this patch was too invasive. This version only adds the
cast to BuildByrefLayout.

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

rdar://23713871

llvm-svn: 256190

8 years agoRemove unnecessary cast.
Rafael Espindola [Mon, 21 Dec 2015 20:18:04 +0000 (20:18 +0000)]
Remove unnecessary cast.

llvm-svn: 256189

8 years agoFix PR24563 (LiveDebugVariables unconditionally propagates all DBG_VALUEs)
Adrian Prantl [Mon, 21 Dec 2015 20:03:00 +0000 (20:03 +0000)]
Fix PR24563 (LiveDebugVariables unconditionally propagates all DBG_VALUEs)

LiveDebugVariables unconditionally propagates all DBG_VALUE down the
dominator tree, which happens to work fine if there already is another
DBG_VALUE or the DBG_VALUE happends to describe a single-assignment vreg
but is otherwise wrong if the DBG_VALUE is coming from only one of the
predecessors.

In r255759 we introduced a proper data flow analysis scheduled after
LiveDebugVariables that correctly propagates DBG_VALUEs across basic block
boundaries. With the new pass in place, the incorrect propagation in
LiveDebugVariables can be retired witout loosing any of the benefits
where LiveDebugVariables happened to do the right thing.

llvm-svn: 256188

8 years agoConvert the CodeGen/ARM/sched-it-debug-nodes.ll testcase from IR -> MIR.
Adrian Prantl [Mon, 21 Dec 2015 19:44:42 +0000 (19:44 +0000)]
Convert the CodeGen/ARM/sched-it-debug-nodes.ll testcase from IR -> MIR.
NFC
PR24563

llvm-svn: 256187

8 years agoRevert "[CodeGen] Fix assignments of inline layouts into the byref structure"
Vedant Kumar [Mon, 21 Dec 2015 19:43:25 +0000 (19:43 +0000)]
Revert "[CodeGen] Fix assignments of inline layouts into the byref structure"

This reverts commit r256185. It breaks CodeGenObjC/fragile-arc.m.

llvm-svn: 256186

8 years ago[CodeGen] Fix assignments of inline layouts into the byref structure
Vedant Kumar [Mon, 21 Dec 2015 19:30:37 +0000 (19:30 +0000)]
[CodeGen] Fix assignments of inline layouts into the byref structure

When using blocks, a byref structure is created to represent the
closure. The "byref.layout" field of this structure is an i8*. However,
some 'inline' layouts are represented as i64's, not i8*'s.

Prior to r246985 we cast the i64 'inline' layout to an i8* before
assigning it into the byref structure. This patch brings the cast back
and adds a regression test.

rdar://23713871

llvm-svn: 256185

8 years ago[compiler-rt] [tsan] Add support for PIE build on AArch64
Adhemerval Zanella [Mon, 21 Dec 2015 19:27:57 +0000 (19:27 +0000)]
[compiler-rt] [tsan] Add support for PIE build on AArch64

This patch adds PIE executable support for aarch64-linux.  It adds
two more segments:

- 0x05500000000-0x05600000000: 39-bits PIE program segments
- 0x2aa00000000-0x2ab00000000: 42-bits PIE program segments

Fortunately it is possible to use the same transformation formula for
the new segments range with some adjustments in shadow to memory
formula (it adds a constant offset based on the VMA size).

A simple testcase is also added, however it is disabled on x86 due the
fact it might fail on newer kernels [1].

[1] https://git.kernel.org/linus/d1fd836dcf00d2028c700c7e44d2c23404062c90

llvm-svn: 256184

8 years agoTeach ARMLoadStoreOptimizer to ignore DBG_VALUE instructions when merging
Adrian Prantl [Mon, 21 Dec 2015 19:25:03 +0000 (19:25 +0000)]
Teach ARMLoadStoreOptimizer to ignore DBG_VALUE instructions when merging
instructions.

As noted in PR24563.
rdar://problem/23963293

llvm-svn: 256183

8 years ago[asan] fix fopen interceptor to not crash if path is NULL
Kostya Serebryany [Mon, 21 Dec 2015 19:22:26 +0000 (19:22 +0000)]
[asan] fix fopen interceptor to not crash if path is NULL

llvm-svn: 256182

8 years agoDelete dead typedefs.
Rafael Espindola [Mon, 21 Dec 2015 19:10:27 +0000 (19:10 +0000)]
Delete dead typedefs.

llvm-svn: 256181

8 years agoRefactor duplicated code. NFC.
Rafael Espindola [Mon, 21 Dec 2015 19:09:19 +0000 (19:09 +0000)]
Refactor duplicated code. NFC.

llvm-svn: 256180

8 years agofix leak in a test, make the sanitizer bot green
Kostya Serebryany [Mon, 21 Dec 2015 19:09:01 +0000 (19:09 +0000)]
fix leak in a test, make the sanitizer bot green

llvm-svn: 256179

8 years agoAMDGPU/SI: Fix encoding for FLAT_SCRATCH registers on VI
Tom Stellard [Mon, 21 Dec 2015 18:44:27 +0000 (18:44 +0000)]
AMDGPU/SI: Fix encoding for FLAT_SCRATCH registers on VI

Summary:
These register has different encodings on CI and VI, so we add pseudo
FLAT_SCRACTH registers to be used before MC, and subtarget specific
registers to be used by the MC layer.

Reviewers: arsenm

Subscribers: arsenm, llvm-commits

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

llvm-svn: 256178

8 years agoAMDGPU/SI: Change assembly name for flat scratch registers to flat_scratch
Tom Stellard [Mon, 21 Dec 2015 18:44:21 +0000 (18:44 +0000)]
AMDGPU/SI: Change assembly name for flat scratch registers to flat_scratch

This matches what the assembler accepts.

llvm-svn: 256177

8 years ago[AArch64] Add additional extract-extend patterns for smov
Matthew Simpson [Mon, 21 Dec 2015 18:31:25 +0000 (18:31 +0000)]
[AArch64] Add additional extract-extend patterns for smov

This patch adds to the target description two additional patterns for matching
extract-extend operations to SMOV. The patterns catch the v16i8-to-i64 and
v8i16-to-i64 cases. The existing patterns miss these cases because the
extracted elements must first be legalized to i32, resulting in any_extend
nodes.

This was originally implemented as a DAG combine (r255895), but was reverted
due to failing out-of-tree tests.

llvm-svn: 256176

8 years agoclang-format: Properly set the BlockKind for more blocks.
Daniel Jasper [Mon, 21 Dec 2015 18:31:15 +0000 (18:31 +0000)]
clang-format: Properly set the BlockKind for more blocks.

Before:
  void f() { struct Dummy { };
    f();
  }

After:
  void f() {
    struct Dummy {};
    f();
  }

llvm-svn: 256175

8 years agoAdd testcase for r256161 (PR25907)
Teresa Johnson [Mon, 21 Dec 2015 18:24:35 +0000 (18:24 +0000)]
Add testcase for r256161 (PR25907)

llvm-svn: 256174

8 years agoRemove extra whitespace. NFC.
Chad Rosier [Mon, 21 Dec 2015 18:08:05 +0000 (18:08 +0000)]
Remove extra whitespace. NFC.

llvm-svn: 256173

8 years ago[ELF][MIPS] Support some of R_MIPS_PCxxx relocations
Simon Atanasyan [Mon, 21 Dec 2015 17:36:40 +0000 (17:36 +0000)]
[ELF][MIPS] Support some of R_MIPS_PCxxx relocations

The patch adds support for R_MIPS_PC16, R_MIPS_PC19_S2, R_MIPS_PC21_S2,
R_MIPS_PC26_S2, R_MIPS_PCHI16, R_MIPS_PCLO16 relocations handling.

llvm-svn: 256172

8 years ago[ThinLTO] Rename variable to reflect bulk importing change (NFC)
Teresa Johnson [Mon, 21 Dec 2015 17:33:24 +0000 (17:33 +0000)]
[ThinLTO] Rename variable to reflect bulk importing change (NFC)

llvm-svn: 256171

8 years agoclang-format: Only consider the first #include that looks right to be
Daniel Jasper [Mon, 21 Dec 2015 17:28:24 +0000 (17:28 +0000)]
clang-format: Only consider the first #include that looks right to be
the main #include.

llvm-svn: 256170

8 years ago[WebAssembly] Convert a regular for loop to a range-based for loop.
Dan Gohman [Mon, 21 Dec 2015 17:22:02 +0000 (17:22 +0000)]
[WebAssembly] Convert a regular for loop to a range-based for loop.

llvm-svn: 256169

8 years ago[WebAssembly] Clean up comments and fix a missing #include dependency.
Dan Gohman [Mon, 21 Dec 2015 17:19:31 +0000 (17:19 +0000)]
[WebAssembly] Clean up comments and fix a missing #include dependency.

llvm-svn: 256168

8 years ago[WebAssembly] Remove an unneeded empty destructor.
Dan Gohman [Mon, 21 Dec 2015 17:12:40 +0000 (17:12 +0000)]
[WebAssembly] Remove an unneeded empty destructor.

llvm-svn: 256167

8 years ago[WebAssembly] Enclose the operand variables for load and store instructions in braces.
Dan Gohman [Mon, 21 Dec 2015 16:58:49 +0000 (16:58 +0000)]
[WebAssembly] Enclose the operand variables for load and store instructions in braces.

This allows the AsmMatcherEmitter to properly tokenize the AsmStrings for
load and store instructions. This is a step towards asm parsing.

llvm-svn: 256166

8 years ago[WebAssembly] Mark the ARGUMENT pseudo-instructions as CodeGenOnly.
Dan Gohman [Mon, 21 Dec 2015 16:53:29 +0000 (16:53 +0000)]
[WebAssembly] Mark the ARGUMENT pseudo-instructions as CodeGenOnly.

llvm-svn: 256165

8 years ago[WebAssembly] Add some comments and make some minor source cleanups.
Dan Gohman [Mon, 21 Dec 2015 16:50:41 +0000 (16:50 +0000)]
[WebAssembly] Add some comments and make some minor source cleanups.

llvm-svn: 256164

8 years agoTeach MCOperand::print how to print FPImm operands.
Dan Gohman [Mon, 21 Dec 2015 16:47:10 +0000 (16:47 +0000)]
Teach MCOperand::print how to print FPImm operands.

llvm-svn: 256163

8 years agoRemove unused functions from ModuleLinker (NFC)
Teresa Johnson [Mon, 21 Dec 2015 15:49:59 +0000 (15:49 +0000)]
Remove unused functions from ModuleLinker (NFC)

Remove a couple ModuleLinker methods and a related static function that
are no longer used after the linker split.

llvm-svn: 256162

8 years agoRemove overly strict new assert in BitcodeReader.
Teresa Johnson [Mon, 21 Dec 2015 15:38:13 +0000 (15:38 +0000)]
Remove overly strict new assert in BitcodeReader.

This fixes a bug introduced by the ThinLTO metadata linking patch
r255909. The assert is overly-strict and while useful in development of
the patch, doesn't seem interesting to keep.

Fixes PR25907.

llvm-svn: 256161

8 years agoRevert "[AArch64] Promote loads from stores"
Jun Bum Lim [Mon, 21 Dec 2015 15:36:49 +0000 (15:36 +0000)]
Revert "[AArch64] Promote loads from stores"

This reverts commit r256004 due to a failure in cortex-a53.

llvm-svn: 256160

8 years ago[LIR] Refactor code to enable future patch. NFC.
Chad Rosier [Mon, 21 Dec 2015 14:49:32 +0000 (14:49 +0000)]
[LIR] Refactor code to enable future patch. NFC.

llvm-svn: 256159

8 years ago[AArch64] Enable PostRAScheduler for AArch64 generic build.
Chad Rosier [Mon, 21 Dec 2015 14:43:45 +0000 (14:43 +0000)]
[AArch64] Enable PostRAScheduler for AArch64 generic build.

Disable post-ra scheduler for perturbed tests to appease the bots and to
preserve the history of the tests.

http://reviews.llvm.org/D15652

llvm-svn: 256158

8 years agoAVX512BW: Enable AND/OR/XOR vector byte/word paked operation by promoting to qword...
Igor Breger [Mon, 21 Dec 2015 14:40:36 +0000 (14:40 +0000)]
AVX512BW: Enable AND/OR/XOR vector byte/word paked operation by promoting to qword that natively suppored.

llvm-svn: 256157

8 years ago[llvm-objdump] Use appropriate helper. NFC.
Davide Italiano [Mon, 21 Dec 2015 14:10:54 +0000 (14:10 +0000)]
[llvm-objdump] Use appropriate helper. NFC.

llvm-svn: 256156

8 years agoImplemented Support of IA interrupt and exception handlers:
Amjad Aboud [Mon, 21 Dec 2015 14:07:14 +0000 (14:07 +0000)]
Implemented Support of IA interrupt and exception handlers:
http://lists.llvm.org/pipermail/cfe-dev/2015-September/045171.html

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

llvm-svn: 256155

8 years agoclang-format: [JS] Change Google-style default for aligning operands.
Daniel Jasper [Mon, 21 Dec 2015 13:52:19 +0000 (13:52 +0000)]
clang-format: [JS] Change Google-style default for aligning operands.

The style guide allows both, but apparently, this is the more dominant use.

llvm-svn: 256154

8 years agoclang-format: Only try to find the "main" include in the first block of
Daniel Jasper [Mon, 21 Dec 2015 13:40:49 +0000 (13:40 +0000)]
clang-format: Only try to find the "main" include in the first block of
includes.

llvm-svn: 256153

8 years ago[mips][microMIPS] Implement DERET and DI instructions and check size operand for...
Zlatko Buljan [Mon, 21 Dec 2015 13:08:58 +0000 (13:08 +0000)]
[mips][microMIPS] Implement DERET and DI instructions and check size operand for EXT and DEXT* instructions
Differential Revision: http://reviews.llvm.org/D15570

llvm-svn: 256152