platform/upstream/llvm.git
7 years ago[ELF] Convert .got.plt section to input section
Eugene Leviant [Thu, 10 Nov 2016 09:48:29 +0000 (09:48 +0000)]
[ELF] Convert .got.plt section to input section

Differential revision: https://reviews.llvm.org/D26349

llvm-svn: 286443

7 years agoIslAst: always use the context during ast generation
Tobias Grosser [Thu, 10 Nov 2016 09:39:58 +0000 (09:39 +0000)]
IslAst: always use the context during ast generation

Providing the context to the ast generator allows for additional simplifcations
and -- more importantly -- allows to generate loops with only partially bounded
domains, assuming the domains are bounded for all parameter configurations
that are valid as defined by the context.

This change fixes the crash reported in http://llvm.org/PR30956

The original reason why we did not include the context when generating an
AST was that CLooG and later isl used to sometimes transfer some of the
constraints that bound the size of parameters from the context into the
generated AST. This resulted in operations with very large constants, which
sometimes introduced problematic integer overflows. The latest versions of
the isl AST generator are careful to not introduce such constants.

Reported-by: Eli Friedman <efriedma@codeaurora.org>
llvm-svn: 286442

7 years agoAdded check for malloc return.
Andrey Churbanov [Thu, 10 Nov 2016 09:08:03 +0000 (09:08 +0000)]
Added check for malloc return.

Patch by Victor Campos.

Differential Revision: https://reviews.llvm.org/D26318

llvm-svn: 286441

7 years ago[ELF] - Implemented --symbol-ordering-file option.
George Rimar [Thu, 10 Nov 2016 09:05:20 +0000 (09:05 +0000)]
[ELF] - Implemented --symbol-ordering-file option.

Patch allows to pass a symbols file to linker.
LLD will map symbols to sections and sort sections
in output according to symbol ordering file.

That can help to reduce the startup time and/or
amount of pagefaults during startup.

Also, interesting benchmark result was produced by Rafael Espíndola.
After applying the symbols file for clang he timed compiling
X86MCTargetDesc.ii to an object file.

The page faults went from just
56,988 to 56,946 since most faults are not in the binary.
Running time went from 4.403053515 to 4.178112244.
The speedup seems to be because of better cache
locality.

Differential revision: https://reviews.llvm.org/D26130

llvm-svn: 286440

7 years agoMake output of -ast-print a valid C++ code.
Serge Pavlov [Thu, 10 Nov 2016 08:49:37 +0000 (08:49 +0000)]
Make output of -ast-print a valid C++ code.

Output generated by option -ast-print looks like C/C++ code, and it
really is for plain C. For C++ the produced output was not valid C++
code, but the differences were small. With this change the output
is fixed and can be compiled. Tests are changed so that output produced
by -ast-print is compiled again with the same flags and both outputs are
compared.

Option -ast-print is extensively used in clang tests but it itself
was tested poorly, existing tests only checked that compiler did not
crash. There are unit tests in file DeclPrinterTest.cpp, but they test
only terse output mode.

Differential Revision: https://reviews.llvm.org/D26452

llvm-svn: 286439

7 years ago[SCEVExpander] Hoist unsigned divisons when safe
Sanjoy Das [Thu, 10 Nov 2016 07:56:12 +0000 (07:56 +0000)]
[SCEVExpander] Hoist unsigned divisons when safe

That is, when the divisor is a constant non-zero.

llvm-svn: 286438

7 years ago[SCEVExpander] Don't hoist divisions
Sanjoy Das [Thu, 10 Nov 2016 07:56:09 +0000 (07:56 +0000)]
[SCEVExpander] Don't hoist divisions

Fixes PR30942.

llvm-svn: 286437

7 years agoLift out a helper lambda; NFC
Sanjoy Das [Thu, 10 Nov 2016 07:56:05 +0000 (07:56 +0000)]
Lift out a helper lambda; NFC

llvm-svn: 286436

7 years ago[AVX-512] Allow legacy cvtpd2dq intrinsics to select EVEX encoded instruction when...
Craig Topper [Thu, 10 Nov 2016 07:47:17 +0000 (07:47 +0000)]
[AVX-512] Allow legacy cvtpd2dq intrinsics to select EVEX encoded instruction when available.

llvm-svn: 286435

7 years ago[AVX-512][X86] Convert avx_cvtt_ps2dq_256 and sse2_cvttps2dq intrinsics to ISD::FP_TO...
Craig Topper [Thu, 10 Nov 2016 07:24:52 +0000 (07:24 +0000)]
[AVX-512][X86] Convert avx_cvtt_ps2dq_256 and sse2_cvttps2dq intrinsics to ISD::FP_TO_SINT in the intrinsics table and delete patterns. While nearby also move CVTDQ2PS patterns into their instructions.

This allows these intrinsics to also use EVEX instructons.

llvm-svn: 286434

7 years ago[X86] Convert int_x86_avx_cvtt_pd2dq_256 to fp_to_sint using the intrinsics table...
Craig Topper [Thu, 10 Nov 2016 06:45:39 +0000 (06:45 +0000)]
[X86] Convert int_x86_avx_cvtt_pd2dq_256 to fp_to_sint using the intrinsics table. Removes extra patterns and allows legacy intrinsic to select EVEX encoded instructions when available.

llvm-svn: 286433

7 years ago[X86] Move some custom patterns into the currently empty pattern of their correspondi...
Craig Topper [Thu, 10 Nov 2016 06:45:37 +0000 (06:45 +0000)]
[X86] Move some custom patterns into the currently empty pattern of their corresponding instructions. NFC

llvm-svn: 286432

7 years ago[X86] Remove some patterns still referencing int_x86_sse2_cvttpd2dq that should have...
Craig Topper [Thu, 10 Nov 2016 06:45:34 +0000 (06:45 +0000)]
[X86] Remove some patterns still referencing int_x86_sse2_cvttpd2dq that should have been removed in r286344. NFC

llvm-svn: 286431

7 years agoSCEVValidator: add new parameters resulting from constant extraction
Tobias Grosser [Thu, 10 Nov 2016 06:45:28 +0000 (06:45 +0000)]
SCEVValidator: add new parameters resulting from constant extraction

When extracting constant expressions out of SCEVs, new parameters may be
introduced, which have not been registered before. This change scans
SCEV expressions after constant extraction again to make sure newly
introduced parameters are registered.

We may for example extract the constant '8' from the expression '((8 * ((%a *
%b) + %c)) + (-8 * %a))' and obtain the expression '(((-1 + %b) * %a) + %c)'.
The new expression has a new parameter '(-1 + %b) * %a)', which was not
registered before, but must be registered to not crash.

This closes http://llvm.org/PR30953

Reported-by: Eli Friedman <efriedma@codeaurora.org>
llvm-svn: 286430

7 years ago[SCEV] Eta reduce some lambdas; NFC
Sanjoy Das [Thu, 10 Nov 2016 06:33:54 +0000 (06:33 +0000)]
[SCEV] Eta reduce some lambdas; NFC

llvm-svn: 286429

7 years ago[LangRef] Drop "experimental" caveat from operand bundles
Sanjoy Das [Thu, 10 Nov 2016 06:21:10 +0000 (06:21 +0000)]
[LangRef] Drop "experimental" caveat from operand bundles

I think we're past that point now.

llvm-svn: 286428

7 years ago[clang-move] Support template class.
Haojian Wu [Thu, 10 Nov 2016 05:33:26 +0000 (05:33 +0000)]
[clang-move] Support template class.

Reviewers: ioeric

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D26423

llvm-svn: 286427

7 years agoDo not allow switch statements in loop latches
Tobias Grosser [Thu, 10 Nov 2016 05:20:29 +0000 (05:20 +0000)]
Do not allow switch statements in loop latches

In r248701 "Allow switch instructions in SCoPs" support for switch statements
has been introduced, but support for switch statements in loop latches was
incomplete. This change completely disables switch statements in loop latches.

The original commit changed addLoopBoundsToHeaderDomain to support non-branch
terminator instructions, but this change was incorrect: it added a check for
BI != null to the if-branch of a condition, but BI was used in the else branch
es well. As a result, when a non-branch terminator instruction is encounted a
nullptr dereference is triggered. Due to missing test coverage, this bug was
overlooked.

r249273 "[FIX] Approximate non-affine loops correctly" added code to disallow
switch statements for non-affine loops, if they appear in either a loop latch
or a loop exit. We adapt this code to now prohibit switch statements in
loop latches even if the control condition is affine.

We could possibly add support for switch statements in loop latches, but such
support should be evaluated and tested separately.

This fixes llvm.org/PR30952

Reported-by: Eli Friedman <efriedma@codeaurora.org>
llvm-svn: 286426

7 years ago[AVX-512] Add test cases to show missed opportunities for using VALIGND/Q to handle...
Craig Topper [Thu, 10 Nov 2016 03:39:19 +0000 (03:39 +0000)]
[AVX-512] Add test cases to show missed opportunities for using VALIGND/Q to handle shuffles.

llvm-svn: 286425

7 years ago[clang-tidy] Do not issue fix for functions that are referenced outside of callExpr
Felix Berger [Thu, 10 Nov 2016 01:28:22 +0000 (01:28 +0000)]
[clang-tidy] Do not issue fix for functions that are referenced outside of callExpr

Summary: Suppress fixes for functions that are referenced within the
compilation unit outside of a call expression as the signature change
could break the code referencing the function.

We still issue a warning in this case so that users can decide to
manually change the function signature.

Reviewers: alexfh, sbenza, aaron.ballman

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D26203

llvm-svn: 286424

7 years ago[InstCombine] avoid infinite loop from shuffle-extract-insert sequence (PR30923)
Sanjay Patel [Thu, 10 Nov 2016 00:15:14 +0000 (00:15 +0000)]
[InstCombine] avoid infinite loop from shuffle-extract-insert sequence (PR30923)

Removing the limitation in visitInsertElementInst() causes several regressions
because we're not prepared to fold sequences of shuffles or inserts and extracts
separated by shuffles. Fixing that appears to be a difficult mission because we
are purposely trying to avoid creating shuffles with arbitrary shuffle masks
because some targets may choke on those.

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

llvm-svn: 286423

7 years agoAdd comment and simplify code a bit. NFC.
Rui Ueyama [Thu, 10 Nov 2016 00:12:28 +0000 (00:12 +0000)]
Add comment and simplify code a bit. NFC.

llvm-svn: 286422

7 years ago[libclang] Fix issue with clang_tokenize and make sure it interprets CXSourceRange...
Argyrios Kyrtzidis [Wed, 9 Nov 2016 23:58:39 +0000 (23:58 +0000)]
[libclang] Fix issue with clang_tokenize and make sure it interprets CXSourceRange as half-open character range.

Patch provided by Emilio Cobos Álvarez! (https://reviews.llvm.org/D26446)

llvm-svn: 286421

7 years agoRe-apply r286384, "X86: Introduce the "relocImm" ComplexPattern, which represents...
Peter Collingbourne [Wed, 9 Nov 2016 23:53:43 +0000 (23:53 +0000)]
Re-apply r286384, "X86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate.", with a fix for 32-bit x86.

Teach X86InstrInfo::analyzeCompare() not to crash on CMP and SUB instructions
that take a global address operand.

llvm-svn: 286420

7 years ago[Sema] Use MS ABI behavior for dllexport in Itanium
Shoaib Meenai [Wed, 9 Nov 2016 23:52:20 +0000 (23:52 +0000)]
[Sema] Use MS ABI behavior for dllexport in Itanium

Similar to r284288, make the Itanium ABI follow MS ABI dllexport
semantics in the case of an explicit instantiation declaration followed
by a dllexport explicit instantiation definition.

Differential Revision: https://reviews.llvm.org/D26471

llvm-svn: 286419

7 years ago[AVR] Add a selection of CodeGen tests
Dylan McKay [Wed, 9 Nov 2016 23:46:52 +0000 (23:46 +0000)]
[AVR] Add a selection of CodeGen tests

Summary: This adds all of the CodeGen tests which currently pass.

Reviewers: arsenm, kparzysz

Subscribers: japaric, wdng

Differential Revision: https://reviews.llvm.org/D26388

llvm-svn: 286418

7 years ago[AVR] Add all of the machine code test suite
Dylan McKay [Wed, 9 Nov 2016 23:46:25 +0000 (23:46 +0000)]
[AVR] Add all of the machine code test suite

Summary: This adds all of the AVR machine code tests.

Reviewers: arsenm, kparzysz

Subscribers: wdng, japaric

Differential Revision: https://reviews.llvm.org/D26387

llvm-svn: 286417

7 years agoRemove an overloaded function to simplify.
Rui Ueyama [Wed, 9 Nov 2016 23:37:40 +0000 (23:37 +0000)]
Remove an overloaded function to simplify.

This version of addRegular is almost identical to the other except
it lacked "size" parameter.

llvm-svn: 286416

7 years agoAdd isHotBB helper function to ProfileSummaryInfo
Dehao Chen [Wed, 9 Nov 2016 23:36:02 +0000 (23:36 +0000)]
Add isHotBB helper function to ProfileSummaryInfo

Summary: This will unify all BB hotness checks.

Reviewers: eraman, davidxl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D26353

llvm-svn: 286415

7 years agoMake OutputSectionBase a class instead of class template.
Rafael Espindola [Wed, 9 Nov 2016 23:23:45 +0000 (23:23 +0000)]
Make OutputSectionBase a class instead of class template.

The disadvantage is that we use uint64_t instad of uint32_t for some
value in 32 bit files. The advantage is a substantially simpler code,
faster builds and less code duplication.

llvm-svn: 286414

7 years agoFix weak symbol linkage in SBStructuredData, update docs.
Todd Fiala [Wed, 9 Nov 2016 23:21:04 +0000 (23:21 +0000)]
Fix weak symbol linkage in SBStructuredData, update docs.

Summary:
This change fixes an issue where I was leaking a weakly-linked symbol in
the SBAPI. It also updates the docs to call out what I did wrong.

Fixes:
rdar://28882483

Reviewers: jingham

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D26470

llvm-svn: 286413

7 years agoRemove extra whitespace
Adrian Prantl [Wed, 9 Nov 2016 23:10:44 +0000 (23:10 +0000)]
Remove extra whitespace

llvm-svn: 286412

7 years agoRelax testcase so it also works on Windows.
Adrian Prantl [Wed, 9 Nov 2016 23:05:16 +0000 (23:05 +0000)]
Relax testcase so it also works on Windows.

llvm-svn: 286411

7 years agoPreserve assumption cache in loop-rotate.
Eli Friedman [Wed, 9 Nov 2016 23:05:01 +0000 (23:05 +0000)]
Preserve assumption cache in loop-rotate.

No testcase included because I can't figure out how to reduce it.
(It's easy to write a testcase where rotation clones an assume,
but that doesn't actually seem to trigger the crash in opt on
its own; maybe an issue with the laziness?)

Differential Revision: https://reviews.llvm.org/D26434

llvm-svn: 286410

7 years ago[Sema][NFC] Reset HasFallthroughStmt when clearing FunctionScopeInfo
Erik Pilkington [Wed, 9 Nov 2016 22:52:23 +0000 (22:52 +0000)]
[Sema][NFC] Reset HasFallthroughStmt when clearing FunctionScopeInfo

Differential revision: https://reviews.llvm.org/D22770

llvm-svn: 286409

7 years agoGlobalISel: fix typo. NFC
Tim Northover [Wed, 9 Nov 2016 22:40:02 +0000 (22:40 +0000)]
GlobalISel: fix typo. NFC

llvm-svn: 286408

7 years agoGlobalISel: translate invoke and landingpad instructions
Tim Northover [Wed, 9 Nov 2016 22:39:54 +0000 (22:39 +0000)]
GlobalISel: translate invoke and landingpad instructions

Pretty bare-bones support for exception handling (no weird MSVC stuff, no SjLj
etc), but it should get things going.

llvm-svn: 286407

7 years agoSimplify parseEmulation. NFC.
Rui Ueyama [Wed, 9 Nov 2016 22:32:43 +0000 (22:32 +0000)]
Simplify parseEmulation. NFC.

llvm-svn: 286406

7 years agoSplit OutputSection ctor. NFC.
Rui Ueyama [Wed, 9 Nov 2016 22:32:42 +0000 (22:32 +0000)]
Split OutputSection ctor. NFC.

llvm-svn: 286405

7 years ago[clang-tidy docs] Minor formatting changes.
Alexander Kornienko [Wed, 9 Nov 2016 22:31:07 +0000 (22:31 +0000)]
[clang-tidy docs] Minor formatting changes.

llvm-svn: 286404

7 years agoUpdate vectorization debug info unittest.
Dehao Chen [Wed, 9 Nov 2016 22:25:19 +0000 (22:25 +0000)]
Update vectorization debug info unittest.

Summary:
The change will test the change in r286159.
The idea behind the change: Make the dbg location different between loop header and preheader/exit. Originally, dbg location 21 exists in 3 BBs: preheader, header, critical edge (exit). Update the debug location of inside the loop header from !21 to !22 so that it will reflect the correct location.

Reviewers: probinson

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D26428

llvm-svn: 286403

7 years ago[InstCombine] regenerate checks; NFC
Sanjay Patel [Wed, 9 Nov 2016 22:21:58 +0000 (22:21 +0000)]
[InstCombine] regenerate checks; NFC

llvm-svn: 286402

7 years ago[ELF][MIPS] Attempt to fix buildbot
Simon Atanasyan [Wed, 9 Nov 2016 21:46:42 +0000 (21:46 +0000)]
[ELF][MIPS] Attempt to fix buildbot

llvm-svn: 286401

7 years agoUse an artificial debug location for non-virtual thunks.
Adrian Prantl [Wed, 9 Nov 2016 21:43:51 +0000 (21:43 +0000)]
Use an artificial debug location for non-virtual thunks.
Thunks are artificial and have no corresponding source location except for the
line number on the DISubprogram, which is marked as artificial.

<rdar://problem/11941095>

llvm-svn: 286400

7 years ago[InstCombine] regenerate checks; NFC
Sanjay Patel [Wed, 9 Nov 2016 21:41:34 +0000 (21:41 +0000)]
[InstCombine] regenerate checks; NFC

llvm-svn: 286399

7 years ago[ELF][MIPS] Convert .MIPS.abiflags section to synthetic input section
Simon Atanasyan [Wed, 9 Nov 2016 21:37:06 +0000 (21:37 +0000)]
[ELF][MIPS] Convert .MIPS.abiflags section to synthetic input section

Previously, we have both input and output section for .MIPS.abiflags.
Now we have only one class for .MIPS.abiflags, which is MipsAbiFlagsSection.
This class is a synthetic input section.

.MIPS.abiflags sections are handled as regular sections until
the control reaches Writer. Writer then aggregates all sections
whose type is SHT_MIPS_ABIFLAGS to create a single synthesized
input section. The synthesized section is then processed normally
as if it came from an input file.

llvm-svn: 286398

7 years ago[ELF][MIPS] Convert .reginfo and .MIPS.options sections to synthetic input sections
Simon Atanasyan [Wed, 9 Nov 2016 21:36:56 +0000 (21:36 +0000)]
[ELF][MIPS] Convert .reginfo and .MIPS.options sections to synthetic input sections

Previously, we have both input and output sections for .reginfo and
.MIPS.options. Now for each such sections we have one synthetic input
sections: MipsReginfoSection and MipsOptionsSection respectively.

Both sections are handled as regular sections until the control reaches
Writer. Writer then aggregates all sections whose type is SHT_MIPS_REGINFO
or SHT_MIPS_OPTIONS to create a single synthesized input section. In that
moment Writer also save GP0 value to the MipsGp0 field of the corresponding
ObjectFile. This value required for R_MIPS_GPREL16 and R_MIPS_GPREL32
relocations calculation.

Differential revision: https://reviews.llvm.org/D26444

llvm-svn: 286397

7 years ago[tools] Unbreak the GCC build (workaround a GCC bug).
Davide Italiano [Wed, 9 Nov 2016 21:30:33 +0000 (21:30 +0000)]
[tools] Unbreak the GCC build (workaround a GCC bug).

../tools/llvm-extract/llvm-extract.cpp: In function ‘int main(int, char**)’:
warning: ISO C++ forbids zero-size array ‘argv’ [-Wpedantic]

GCC reference bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61259

llvm-svn: 286396

7 years ago[asan/win] Use TerminateProcess when we want to exit abnormally
Reid Kleckner [Wed, 9 Nov 2016 21:27:58 +0000 (21:27 +0000)]
[asan/win] Use TerminateProcess when we want to exit abnormally

ExitProcess still runs some code which can lead to ASan interceptors
running after CHECK failure. This can lead to deadlock if it CHECK fails
again. Avoid that mess by really exiting immediately.

llvm-svn: 286395

7 years agoMake BitcodeReader::parseIdentificationBlock() robust to EOF
Mehdi Amini [Wed, 9 Nov 2016 21:26:49 +0000 (21:26 +0000)]
Make BitcodeReader::parseIdentificationBlock() robust to EOF

This method is particular: it iterates at the top-level and does
not have an enclosing block.

llvm-svn: 286394

7 years agoDisable cpio test on Windows again.
Rui Ueyama [Wed, 9 Nov 2016 20:54:01 +0000 (20:54 +0000)]
Disable cpio test on Windows again.

The last fix is unlikely to solve the issue. Reverting it to the
original file.

llvm-svn: 286393

7 years agoAttempt to fix green dragon bot.
Rui Ueyama [Wed, 9 Nov 2016 20:42:34 +0000 (20:42 +0000)]
Attempt to fix green dragon bot.

llvm-svn: 286392

7 years ago[clang-tidy docs] Recommend using add_new_check.py more
Alexander Kornienko [Wed, 9 Nov 2016 20:03:30 +0000 (20:03 +0000)]
[clang-tidy docs] Recommend using add_new_check.py more

llvm-svn: 286390

7 years agoMinor unroll pass refacoring.
Evgeny Stupachenko [Wed, 9 Nov 2016 19:56:39 +0000 (19:56 +0000)]
Minor unroll pass refacoring.

Summary:
Unrolled Loop Size calculations moved to a function.
Constant representing number of optimized instructions
 when "back edge" becomes "fall through" replaced with
 variable.
Some comments added.

Reviewers: mzolotukhin

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

From: Evgeny Stupachenko <evstupac@gmail.com>
llvm-svn: 286389

7 years ago[Verifier] clang-format a section; NFC
Sanjoy Das [Wed, 9 Nov 2016 19:36:39 +0000 (19:36 +0000)]
[Verifier] clang-format a section; NFC

Suggested in D26438 since I'm touching related code.

llvm-svn: 286388

7 years ago[RenderScript] Fix reduction argument printing
Luke Drummond [Wed, 9 Nov 2016 19:20:39 +0000 (19:20 +0000)]
[RenderScript] Fix reduction argument printing

When placing function name breakpoints on RenderScript Reduction kernel
functions, we were not skipping over the function prologue meaning that
inspection of the arguments could be garbled as the function was not finished
setting up the stack/registers.

In
[122fe8f](https://github.com/llvm-mirror/lldb/commit/122fe8f47255ec850155495d10526fccc51f95fb)
Aidan added the `SkipPrologue` function that allows us to trivially fix up the
kernel's functions' resolved addresses, falling gracefully back to the old
behaviour if we don't know how to handle the prologue or can't resolve its
size.

llvm-svn: 286387

7 years ago[SCEV] Refactor out a useful pattern; NFC
Sanjoy Das [Wed, 9 Nov 2016 18:22:43 +0000 (18:22 +0000)]
[SCEV] Refactor out a useful pattern; NFC

llvm-svn: 286386

7 years agoRevert r286384, "X86: Introduce the "relocImm" ComplexPattern, which represents a...
Peter Collingbourne [Wed, 9 Nov 2016 18:17:50 +0000 (18:17 +0000)]
Revert r286384, "X86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate."

Suspected to be the cause of a sanitizer-windows bot failure:
Assertion failed: isImm() && "Wrong MachineOperand accessor", file C:\b\slave\sanitizer-windows\llvm\include\llvm/CodeGen/MachineOperand.h, line 420

llvm-svn: 286385

7 years agoX86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate.
Peter Collingbourne [Wed, 9 Nov 2016 17:51:58 +0000 (17:51 +0000)]
X86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate.

A relocatable immediate is either an immediate operand or an operand that
can be relocated by the linker to an immediate, such as a regular symbol
in non-PIC code.

Start using relocImm for 32-bit and 64-bit MOV instructions, and for operands
of type "imm32_su". Remove a number of now-redundant patterns.

Differential Revision: https://reviews.llvm.org/D25812

llvm-svn: 286384

7 years ago[Hexagon] Silence "sometimes uninitialized" warning in HexagonCopyToCombine
Krzysztof Parzyszek [Wed, 9 Nov 2016 17:50:46 +0000 (17:50 +0000)]
[Hexagon] Silence "sometimes uninitialized" warning in HexagonCopyToCombine

llvm-svn: 286383

7 years agoBitcode: Change the materializer interface to return llvm::Error.
Peter Collingbourne [Wed, 9 Nov 2016 17:49:19 +0000 (17:49 +0000)]
Bitcode: Change the materializer interface to return llvm::Error.

Differential Revision: https://reviews.llvm.org/D26439

llvm-svn: 286382

7 years agoFix grammar
Philipp Stephani [Wed, 9 Nov 2016 17:47:56 +0000 (17:47 +0000)]
Fix grammar

"allow" requires a direct object in this case.

llvm-svn: 286381

7 years ago[Sparc] Unbreak test
Douglas Katzman [Wed, 9 Nov 2016 17:02:07 +0000 (17:02 +0000)]
[Sparc] Unbreak test

llvm-svn: 286380

7 years agoMake Discarded a InputSection.
Rafael Espindola [Wed, 9 Nov 2016 16:55:07 +0000 (16:55 +0000)]
Make Discarded a InputSection.

It was quite confusing that it had SectionKind of Regular, but was not
actually a InputSection.

llvm-svn: 286379

7 years ago[ELF] - Add separate form for -R alias.
George Rimar [Wed, 9 Nov 2016 16:38:15 +0000 (16:38 +0000)]
[ELF] - Add separate form for -R alias.

During link of devel/chrpath (FreeBSD port), found next issue:
/usr/bin/ld: error: unclosed comment in a linker script
/usr/bin/ld: error: line 1: unknown directive: �
/usr/bin/ld: error: �\16

Problem was not obvious and the reason was that we did not accept
the separate form of -R. While invocation line contained it:
cc -Wl,-R /usr/local/lib -o prog prog.c

CPIO file produced contained /usr/local/lib file.
Which looks because of reasons above
contained inside the content of whole lib folder,
and it then was passed as an input and
proccessed as linker script.

llvm-svn: 286378

7 years ago[Hexagon] Separate Hexagon subreg indices for different register classes
Krzysztof Parzyszek [Wed, 9 Nov 2016 16:19:08 +0000 (16:19 +0000)]
[Hexagon] Separate Hexagon subreg indices for different register classes

For pairs of 32-bit registers: isub_lo, isub_hi.
For pairs of vector registers: vsub_lo, vsub_hi.

Add generic subreg indices: ps_sub_lo, ps_sub_hi, and a function
  HexagonRegisterInfo::getHexagonSubRegIndex(RegClass, GenericSubreg)
that returns the appropriate subreg index for RegClass.

llvm-svn: 286377

7 years ago[Sparc] LLONG is not lock-free atomic on v8
Douglas Katzman [Wed, 9 Nov 2016 15:43:51 +0000 (15:43 +0000)]
[Sparc] LLONG is not lock-free atomic on v8

Differential Revision: https://reviews.llvm.org/D26286

llvm-svn: 286376

7 years agoRemove TimeValue usage from lldb/Target
Pavel Labath [Wed, 9 Nov 2016 15:05:48 +0000 (15:05 +0000)]
Remove TimeValue usage from lldb/Target

It was only used for declaring unused variables. :)

llvm-svn: 286374

7 years agoRemove TimeValue usage from ObjectContainerBSDArchive
Pavel Labath [Wed, 9 Nov 2016 15:05:45 +0000 (15:05 +0000)]
Remove TimeValue usage from ObjectContainerBSDArchive

llvm-svn: 286373

7 years agoRemove unused TimeValue include
Pavel Labath [Wed, 9 Nov 2016 14:53:37 +0000 (14:53 +0000)]
Remove unused TimeValue include

llvm-svn: 286372

7 years agoRemove TimeValue usage from lldb/Host
Pavel Labath [Wed, 9 Nov 2016 14:53:32 +0000 (14:53 +0000)]
Remove TimeValue usage from lldb/Host

llvm-svn: 286371

7 years agoAdd a convenience getObj method. NFC.
Rafael Espindola [Wed, 9 Nov 2016 14:39:20 +0000 (14:39 +0000)]
Add a convenience getObj method. NFC.

llvm-svn: 286370

7 years agoRemove TimeValue usage from lldb/Interpreter
Pavel Labath [Wed, 9 Nov 2016 14:33:22 +0000 (14:33 +0000)]
Remove TimeValue usage from lldb/Interpreter

llvm-svn: 286369

7 years ago[Hexagon] Eliminate Insert4 pseudo-instruction, use combines instead
Krzysztof Parzyszek [Wed, 9 Nov 2016 14:16:29 +0000 (14:16 +0000)]
[Hexagon] Eliminate Insert4 pseudo-instruction, use combines instead

llvm-svn: 286368

7 years agoclang-format: [TypeScript] Fix bug in handling of non-null operator.
Daniel Jasper [Wed, 9 Nov 2016 14:12:55 +0000 (14:12 +0000)]
clang-format: [TypeScript] Fix bug in handling of non-null operator.

Before:
  var i = x!-1;

After:
  var i = x! - 1;

llvm-svn: 286367

7 years agoRemove TimeValue usage from lldb/Core. NFC.
Pavel Labath [Wed, 9 Nov 2016 14:04:08 +0000 (14:04 +0000)]
Remove TimeValue usage from lldb/Core. NFC.

llvm-svn: 286366

7 years ago[AST] Dump dependent scope member expression with its member name
Alex Lorenz [Wed, 9 Nov 2016 14:02:18 +0000 (14:02 +0000)]
[AST] Dump dependent scope member expression with its member name

llvm-svn: 286365

7 years ago[ELF] - Enable reproduce-error.s under windows.
George Rimar [Wed, 9 Nov 2016 13:55:30 +0000 (13:55 +0000)]
[ELF] - Enable reproduce-error.s under windows.

Differential revision: https://reviews.llvm.org/D26445

llvm-svn: 286364

7 years ago[CodeCompletion] Show block invocation results for block property setters
Alex Lorenz [Wed, 9 Nov 2016 13:43:18 +0000 (13:43 +0000)]
[CodeCompletion] Show block invocation results for block property setters

This commit changes the code completion results for block property setters:
The default block property result is now a block invocation rather than a simple
property reference.

rdar://28846196

Differential Revision: https://reviews.llvm.org/D26071

llvm-svn: 286363

7 years ago[SystemZ] A few fixes in scheduler files.
Jonas Paulsson [Wed, 9 Nov 2016 12:47:57 +0000 (12:47 +0000)]
[SystemZ] A few fixes in scheduler files.

Review: U Weigand
llvm-svn: 286362

7 years agoRemove TimeValue usage from Scalar/SROA.cpp. NFC.
Pavel Labath [Wed, 9 Nov 2016 12:07:12 +0000 (12:07 +0000)]
Remove TimeValue usage from Scalar/SROA.cpp. NFC.

llvm-svn: 286361

7 years agoFix expectation in TestStaticVariables.py after rL286302
Tamas Berghammer [Wed, 9 Nov 2016 11:52:12 +0000 (11:52 +0000)]
Fix expectation in TestStaticVariables.py after rL286302

The debug info emitted by clang for static variables improved by
rL286302 and it exposed an incorrect test expactation because now LLDB
able to displays more data 9thanks to better debug info) then before.

llvm-svn: 286360

7 years agoZero-initialize chrono duration objects
Pavel Labath [Wed, 9 Nov 2016 11:43:57 +0000 (11:43 +0000)]
Zero-initialize chrono duration objects

The default duration constructor does not zero-initialize the object, we need to
do that manually.

llvm-svn: 286359

7 years ago[dsymutil] Replace TimeValue with TimePoint
Pavel Labath [Wed, 9 Nov 2016 11:43:52 +0000 (11:43 +0000)]
[dsymutil] Replace TimeValue with TimePoint

Summary:
All changes are pretty straight-forward. I chose to use TimePoints with
second precision, as that is all that seems to be required here.

Reviewers: friss, zturner

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D25908

llvm-svn: 286358

7 years agoReplace TimeValue with TimePoint in BuildSystem.cpp. NFC.
Pavel Labath [Wed, 9 Nov 2016 11:19:39 +0000 (11:19 +0000)]
Replace TimeValue with TimePoint in BuildSystem.cpp. NFC.

llvm-svn: 286357

7 years ago[VFS] Replace TimeValue usage with std::chrono
Pavel Labath [Wed, 9 Nov 2016 10:52:22 +0000 (10:52 +0000)]
[VFS] Replace TimeValue usage with std::chrono

Summary: NFCI

Reviewers: benlangmuir, zturner

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D25948

llvm-svn: 286356

7 years agoDisplay the pointer value in the libstdc++ unique_ptr summary
Pavel Labath [Wed, 9 Nov 2016 10:42:29 +0000 (10:42 +0000)]
Display the pointer value in the libstdc++ unique_ptr summary

Summary:
r284830 added a summary provider for unique_ptr in libstdc++, whose value printed
the value of the pointee. This is a bit unintuitive as it becomes unobvious that
the value actually is a pointer, and we lose the way to actually obtain the
pointer value.

Change that to print the pointer value instead. The pointee value can still be
obtained through the synthetic children.

Reviewers: tberghammer, granata.enrico

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D26403

llvm-svn: 286355

7 years ago[Sema] Avoid -Wshadow warnings for shadowed variables that aren't captured
Alex Lorenz [Wed, 9 Nov 2016 10:38:57 +0000 (10:38 +0000)]
[Sema] Avoid -Wshadow warnings for shadowed variables that aren't captured
by lambdas with an explicit capture list

This commit avoids the -Wshadow warning for variables which shadow variables
that aren't captured by lambdas with an explicit capture list. It provides an
additional note that points to location of the explicit capture.

The old behaviour is preserved with -Wshadow-all or -Wshadow-uncaptured-local.

rdar://17135966

Differential Revision: https://reviews.llvm.org/D26278

llvm-svn: 286354

7 years ago[ELF] ARM and AArch64 undefined weak reference values
Peter Smith [Wed, 9 Nov 2016 10:22:29 +0000 (10:22 +0000)]
[ELF] ARM and AArch64 undefined weak reference values

The ARM 32 and 64-bit ABI does not use 0 for undefined weak references
that are used in PC relative relocations. In particular:
- A branch relocation to an undefined weak resolves to the next
  instruction. Effectively making the branch a no-op
- In all other cases the symbol resolves to the place so that S + A - P
  resolves to A.

Differential Revision: https://reviews.llvm.org/D26240

llvm-svn: 286353

7 years agoDisable windows-only minidump plugin
Pavel Labath [Wed, 9 Nov 2016 10:16:11 +0000 (10:16 +0000)]
Disable windows-only minidump plugin

Summary:
This commit disables the windows-only minidump plugin and enables the new
cross-platform plugin for windows minidump files. Test decorators are adjusted to
reflect that: windows minidump tests can now run  on all platforms. The exception
is the tests that create minidump files, as that functionality is not available
yet.  I've checked that this works on windows and linux.

Reviewers: amccarth, zturner

Subscribers: dvlahovski, lldb-commits

Differential Revision: https://reviews.llvm.org/D26393

llvm-svn: 286352

7 years ago[mips] Add non-const getter for the Elf_Mips_Options class. NFC
Simon Atanasyan [Wed, 9 Nov 2016 10:14:55 +0000 (10:14 +0000)]
[mips] Add non-const getter for the Elf_Mips_Options class. NFC

llvm-svn: 286351

7 years ago[MachineScheduler] Comments fixing.
Jonas Paulsson [Wed, 9 Nov 2016 09:59:27 +0000 (09:59 +0000)]
[MachineScheduler] Comments fixing.

The name/comment of the third argument to the ScheduleDAGMI constructor
is RemoveKillFlags and not IsPostRA. Only the comments are changed.

Review: A Trick
llvm-svn: 286350

7 years agoRemove TimeValue usage from Core/Module
Pavel Labath [Wed, 9 Nov 2016 09:59:18 +0000 (09:59 +0000)]
Remove TimeValue usage from Core/Module

Summary:
The only interesting part here is that TimePoint and TimeValue have different
natural string representations, which affects "target modules list" output. It
is now "2016-07-09 04:02:21.000000000", whereas previously in was
"Sat Jul  9 04:02:21 2016". I wanted to check if we're OK with that.

Reviewers: clayborg

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D26275

llvm-svn: 286349

7 years ago[ELF] - Ignore -stats command line option.
George Rimar [Wed, 9 Nov 2016 08:59:59 +0000 (08:59 +0000)]
[ELF] - Ignore -stats command line option.

llvm-svn: 286348

7 years ago[ARM] Loop Strength Reduction crashes when targeting ARM or Thumb.
Alexandros Lamprineas [Wed, 9 Nov 2016 08:53:07 +0000 (08:53 +0000)]
[ARM] Loop Strength Reduction crashes when targeting ARM or Thumb.

Scalar Evolution asserts when not all the operands of an Add Recurrence
Expression are loop invariants. Loop Strength Reduction should only
create affine Add Recurrences, so that both the start and the step of
the expression are loop invariants.

Differential Revision: https://reviews.llvm.org/D26185

llvm-svn: 286347

7 years agoPacify lint check
Jonas Hahnfeld [Wed, 9 Nov 2016 08:36:45 +0000 (08:36 +0000)]
Pacify lint check

llvm-svn: 286346

7 years ago[AVX-512] Add lowering to cvttpd2udq/cvttps2udq for fptoui v2f64/2f32 to 2i32
Craig Topper [Wed, 9 Nov 2016 07:48:51 +0000 (07:48 +0000)]
[AVX-512] Add lowering to cvttpd2udq/cvttps2udq for fptoui v2f64/2f32 to 2i32

This patch adds support for fptoui to 2i32 from both 2f64 and 2f32, building on Simon's change for the signed version in r284459 and using AVX-512 instructions.

If we don't have VLX support we need to use a 512-bit operation for v2f64->v2i32 and extract the result.

It also recognises that cvttpd2udq zeroes the upper 64-bits of the xmm result.

Differential Revision: https://reviews.llvm.org/D26331

llvm-svn: 286345

7 years ago[X86] Lower AVX512 and SSE intrinsics for CVTTPD2DQ to X86ISD::CVTTPD2DQ.
Craig Topper [Wed, 9 Nov 2016 07:31:32 +0000 (07:31 +0000)]
[X86] Lower AVX512 and SSE intrinsics for CVTTPD2DQ to X86ISD::CVTTPD2DQ.

Summary: This allows the SSE intrinsic to use the EVEX instruction when available. It also fixes EVEX to not use a weird (v4i32 (fp_to_sint v2f64)) node and it merges some isel patterns. This also fixes some cases that weren't combining vzmovl with cvttpd2dq to remove extra moves.

Reviewers: delena, zvi, RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D26330

llvm-svn: 286344

7 years ago[AVX-512] Add more varied alignments to tests for storing the lower 128-bits of a...
Craig Topper [Wed, 9 Nov 2016 05:38:47 +0000 (05:38 +0000)]
[AVX-512] Add more varied alignments to tests for storing the lower 128-bits of a 256 or 512-bit subvector extract.

llvm-svn: 286343

7 years ago[AVX-512] Use alignedstore256 in patterns that look for stores of the lower 256-bits...
Craig Topper [Wed, 9 Nov 2016 05:31:57 +0000 (05:31 +0000)]
[AVX-512] Use alignedstore256 in patterns that look for stores of the lower 256-bits of a 512-bit vector to use a 256-bit aligned store.

Previously we were only checking for 16 byte alignment instead of 32 byte alignment. Fixes PR30947.

llvm-svn: 286342