platform/upstream/llvm.git
9 years agoWebAssembly: handle `ret void`.
JF Bastien [Fri, 31 Jul 2015 21:04:18 +0000 (21:04 +0000)]
WebAssembly: handle `ret void`.

Summary:
Use -1 as numoperands for the return SDTypeProfile, denoting that return is variadic. Note that the patterns in InstrControl.td still need to match the inputs, so this ins't an "anything goes" variadic on ret!

The next step will be to handle other local types (not just int32).

Reviewers: sunfish

Subscribers: llvm-commits, jfb

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

llvm-svn: 243783

9 years ago[lldb-mi] Fix evaluation for children of created variable object.
Dawn Perchik [Fri, 31 Jul 2015 21:00:00 +0000 (21:00 +0000)]
[lldb-mi] Fix evaluation for children of created variable object.

Move code in CMICmdCmdVarListChildren::Execute() up so that the child
object will always be added when the MI command -var-list-children is
entered (instead of only when the print-value was all or simple).  This
patch fixes evaluation of expressions like varobj.member for a created
varobj with children.

Reviewed by: abidh
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D11659

llvm-svn: 243782

9 years ago[libFuzzer] make sure that 2-byte arguments of switch() are handled properly
Kostya Serebryany [Fri, 31 Jul 2015 20:58:55 +0000 (20:58 +0000)]
[libFuzzer] make sure that 2-byte arguments of switch() are handled properly

llvm-svn: 243781

9 years agoMIR Serialization: Serialize the floating point immediate machine operands.
Alex Lorenz [Fri, 31 Jul 2015 20:49:21 +0000 (20:49 +0000)]
MIR Serialization: Serialize the floating point immediate machine operands.

Reviewers: Duncan P. N. Exon Smith
llvm-svn: 243780

9 years agoIR: Add a broad bitcode compatibility test
Duncan P. N. Exon Smith [Fri, 31 Jul 2015 20:44:32 +0000 (20:44 +0000)]
IR: Add a broad bitcode compatibility test

Successive versions of LLVM should retain the ability to parse bitcode
generated by old releases of the compiler.  This adds a bitcode format
compatibility test, which is intended to provide good (albeit not
entirely exhaustive) coverage of the current LangRef.

This also includes compatibility tests for LLVM 3.6.  After every 3.X.0
release, the compatibility.ll file from the 3.X branch should be copied
to compatibility-3.X.ll on trunk, and the 3.X.0 release used to generate
a corresponding bitcode file.

Patch by Vedant Kumar!

llvm-svn: 243779

9 years ago[dwarfdump] Ignore scattered relocations for mach-o.
Frederic Riss [Fri, 31 Jul 2015 20:22:50 +0000 (20:22 +0000)]
[dwarfdump] Ignore scattered relocations for mach-o.

When encountering a scattered relocation, the code would assert trying to
access an unexisting section. I couldn't find a way to expose the result
of the processing of a scattered reloc, and I'm really unsure what the
right thing to do is. This patch just skips them during the processing in
DwarfContext and adds a mach-o file to the tests that exposed the asserting
behavior.
(This is a new failure that is being exposed by Rafael's recent work on
the libObject interfaces. I think the wrong behavior has always happened,
but now it's asserting)

llvm-svn: 243778

9 years ago[dsymutil] Support multiple input files on the command line
Frederic Riss [Fri, 31 Jul 2015 20:22:20 +0000 (20:22 +0000)]
[dsymutil] Support multiple input files on the command line

llvm-svn: 243777

9 years agotest commit; wrap ellipses in comment with brackets
Nathan Wilson [Fri, 31 Jul 2015 20:00:02 +0000 (20:00 +0000)]
test commit; wrap ellipses in comment with brackets

llvm-svn: 243776

9 years agoDI: Update testcases for LLVM assembly change
Duncan P. N. Exon Smith [Fri, 31 Jul 2015 18:59:37 +0000 (18:59 +0000)]
DI: Update testcases for LLVM assembly change

Update testcases after LLVM change r243774.

Most of these had no need to check `tag:` field, but did so as a way of
getting to the `name:` field.  In a few cases I've converted the `tag:`
checks to `arg:` or `CHECK-NOT: arg:`.

llvm-svn: 243775

9 years agoDI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable
Duncan P. N. Exon Smith [Fri, 31 Jul 2015 18:58:39 +0000 (18:58 +0000)]
DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable

Remove the fake `DW_TAG_auto_variable` and `DW_TAG_arg_variable` tags,
using `DW_TAG_variable` in their place Stop exposing the `tag:` field at
all in the assembly format for `DILocalVariable`.

Most of the testcase updates were generated by the following sed script:

    find test/ -name "*.ll" -o -name "*.mir" |
    xargs grep -l 'DILocalVariable' |
    xargs sed -i '' \
      -e 's/tag: DW_TAG_arg_variable, //' \
      -e 's/tag: DW_TAG_auto_variable, //'

There were only a handful of tests in `test/Assembly` that I needed to
update by hand.

(Note: a follow-up could change `DILocalVariable::DILocalVariable()` to
set the tag to `DW_TAG_formal_parameter` instead of `DW_TAG_variable`
(as appropriate), instead of having that logic magically in the backend
in `DbgVariable`.  I've added a FIXME to that effect.)

llvm-svn: 243774

9 years agoAdd missing 'override'.
Daniel Jasper [Fri, 31 Jul 2015 18:32:38 +0000 (18:32 +0000)]
Add missing 'override'.

llvm-svn: 243773

9 years agox86: check hasOpaqueSPAdjustment in canRealignStack
JF Bastien [Fri, 31 Jul 2015 18:28:09 +0000 (18:28 +0000)]
x86: check hasOpaqueSPAdjustment in canRealignStack

Summary:
@rnk pointed out in [1] that x86's canRealignStack logic should match that in CantUseSP from hasBasePointer.

  [1]: http://reviews.llvm.org/D11160?id=29713#inline-89350

Reviewers: rnk

Subscribers: rnk, llvm-commits

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

llvm-svn: 243772

9 years ago[UBSan] Test: Move coverage-levels.cc out of Linux directory
Filipe Cabecinhas [Fri, 31 Jul 2015 18:18:07 +0000 (18:18 +0000)]
[UBSan] Test: Move coverage-levels.cc out of Linux directory

Summary:
This test is working on other platforms.

Reviewers: samsonov, emaste

Subscribers: llvm-commits

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

llvm-svn: 243771

9 years agoWebAssembly: handle unused function arguments.
JF Bastien [Fri, 31 Jul 2015 18:13:27 +0000 (18:13 +0000)]
WebAssembly: handle unused function arguments.

Subscribers: llvm-commits, sunfish, jfb

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

llvm-svn: 243770

9 years agoAttempt to appease the MSVC build bots
David Majnemer [Fri, 31 Jul 2015 18:13:25 +0000 (18:13 +0000)]
Attempt to appease the MSVC build bots

They don't seem to care for initializing an ArrayRef with a
std::initializer_list.

llvm-svn: 243769

9 years ago[libFuzzer] record traces from the switch statements only when told to do so
Kostya Serebryany [Fri, 31 Jul 2015 18:09:08 +0000 (18:09 +0000)]
[libFuzzer] record traces from the switch statements only when told to do so

llvm-svn: 243768

9 years ago[MS ABI] Hook clang up to the new EH instructions
David Majnemer [Fri, 31 Jul 2015 17:58:45 +0000 (17:58 +0000)]
[MS ABI] Hook clang up to the new EH instructions

The new EH instructions make it possible for LLVM to generate .xdata
tables that the MSVC personality routines will be happy about.  Because
this is experimental, hide it behind a -cc1 flag (-fnew-ms-eh).

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

llvm-svn: 243767

9 years agoNew EH representation for MSVC compatibility
David Majnemer [Fri, 31 Jul 2015 17:58:14 +0000 (17:58 +0000)]
New EH representation for MSVC compatibility

This introduces new instructions neccessary to implement MSVC-compatible
exception handling support.  Most of the middle-end and none of the
back-end haven't been audited or updated to take them into account.

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

llvm-svn: 243766

9 years agoDI: Update for LLVM API change for local variables
Duncan P. N. Exon Smith [Fri, 31 Jul 2015 17:56:14 +0000 (17:56 +0000)]
DI: Update for LLVM API change for local variables

Adjust to LLVM DIBuilder API changes in r243764, using
`createAutoVariable()` and `createParameterVariable()` in place of
`createLocalVariable()`.  No real functionality change here.

llvm-svn: 243765

9 years agoDI: Rewrite the DIBuilder local variable API
Duncan P. N. Exon Smith [Fri, 31 Jul 2015 17:55:53 +0000 (17:55 +0000)]
DI: Rewrite the DIBuilder local variable API

Replace the general `createLocalVariable()` with two more specific
functions: `createParameterVariable()` and `createAutoVariable()`, and
rewrite the documentation.

Besides cleaning up the API, this avoids exposing the fake DWARF tags
`DW_TAG_arg_variable` and `DW_TAG_auto_variable` to frontends, and is
preparation for removing them completely.

llvm-svn: 243764

9 years agoWebAssembly: print basic integer assembly.
JF Bastien [Fri, 31 Jul 2015 17:53:38 +0000 (17:53 +0000)]
WebAssembly: print basic integer assembly.

Summary:
This prints assembly for int32 integer operations defined in WebAssemblyInstrInteger.td only, with major caveats:

  - The operation names are currently incorrect.
  - Other integer and floating-point types will be added later.
  - The printer isn't factored out to handle recursive AST code yet, since it can't even handle control flow anyways.
  - The assembly format isn't full s-expressions yet either, this will be added later.
  - This currently disables PrologEpilogCodeInserter as well as MachineCopyPropagation becasue they don't like virtual registers, which WebAssembly likes quite a bit. This will be fixed by factoring out NVPTX's change (currently a fork of PrologEpilogCodeInserter).

Reviewers: sunfish

Subscribers: llvm-commits, jfb

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

llvm-svn: 243763

9 years agoCOFF: Reenable the lld test disabled in r243758.
David Majnemer [Fri, 31 Jul 2015 17:41:11 +0000 (17:41 +0000)]
COFF: Reenable the lld test disabled in r243758.

llvm-svn: 243762

9 years ago[COFF] Consider the ImageBase when reporting section addresses
David Majnemer [Fri, 31 Jul 2015 17:40:24 +0000 (17:40 +0000)]
[COFF] Consider the ImageBase when reporting section addresses

This lets us reenable the lld test disabled in r243758.

llvm-svn: 243761

9 years ago[libFuzzer] support switch interception in dfsan mode
Kostya Serebryany [Fri, 31 Jul 2015 17:05:05 +0000 (17:05 +0000)]
[libFuzzer] support switch interception in dfsan mode

llvm-svn: 243760

9 years ago[CodeGenPrepare] Compress a pair. No functional change.
Benjamin Kramer [Fri, 31 Jul 2015 17:00:39 +0000 (17:00 +0000)]
[CodeGenPrepare] Compress a pair. No functional change.

llvm-svn: 243759

9 years agoDisable objdump disassembly test after r243755
Reid Kleckner [Fri, 31 Jul 2015 16:41:23 +0000 (16:41 +0000)]
Disable objdump disassembly test after r243755

Right now PE image section addresses are RVAs and symbol addresses are
VAs.  We should probably fix this by changing section addresses to match
symbol addresses. Fixing this might take a few hours, so temporarily
disable the objdump part of this test.

llvm-svn: 243758

9 years agoAdd some help strings for /dll and /debug so they show up in /?
Reid Kleckner [Fri, 31 Jul 2015 16:40:38 +0000 (16:40 +0000)]
Add some help strings for /dll and /debug so they show up in /?

llvm-svn: 243757

9 years ago[x86] reassociate integer multiplies using machine combiner pass
Sanjay Patel [Fri, 31 Jul 2015 16:21:55 +0000 (16:21 +0000)]
[x86] reassociate integer multiplies using machine combiner pass

Add i16, i32, i64 imul machine instructions to the list of reassociation
candidates.

A new bit of logic is needed to handle integer instructions: they have an
implicit EFLAGS operand, so we have to make sure it's dead in order to do
any reassociation with integer ops.

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

llvm-svn: 243756

9 years ago[COFF] Return symbol VAs instead of RVAs for PE files
Reid Kleckner [Fri, 31 Jul 2015 16:14:22 +0000 (16:14 +0000)]
[COFF] Return symbol VAs instead of RVAs for PE files

This makes llvm-nm consistent with binutils nm on executables and DLLs.
For a vanilla hello world executable, the address of main should include
the default image base of 0x400000.

llvm-svn: 243755

9 years agoAdd misc-unused-alias-decls check that currently finds unused namespace
Daniel Jasper [Fri, 31 Jul 2015 16:08:10 +0000 (16:08 +0000)]
Add misc-unused-alias-decls check that currently finds unused namespace
alias declarations. In the future, we might want to reuse it to also
fine unsed using declarations and such.

llvm-svn: 243754

9 years ago[AArch64] Favor extended reg patterns for sub
Geoff Berry [Fri, 31 Jul 2015 15:55:54 +0000 (15:55 +0000)]
[AArch64] Favor extended reg patterns for sub

Summary:
Favor the extended reg patterns over the shifted reg patterns that match
only the operand shift and not the full sign/zero extend and shift.

Reviewers: jmolloy, t.p.northover

Subscribers: mcrosier, aemerson, llvm-commits, rengolin

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

llvm-svn: 243753

9 years ago[libc++abi] Allow use just compiled clang++ for tests
Renato Golin [Fri, 31 Jul 2015 15:25:11 +0000 (15:25 +0000)]
[libc++abi] Allow use just compiled clang++ for tests

Currently, the tests assume the system compiler is the one we want
to test, but if we build libcxxabi together with LLVM+Clang, it'll
get the wrong compiler.

This patch allows us to test if we have clang++ in our /bin directory,
and if so, use it.

llvm-svn: 243752

9 years agodon't repeat function names in comments; NFC
Sanjay Patel [Fri, 31 Jul 2015 15:10:44 +0000 (15:10 +0000)]
don't repeat function names in comments; NFC

llvm-svn: 243751

9 years ago[CaptureTracker] Provide an ordered basic block to PointerMayBeCapturedBefore
Bruno Cardoso Lopes [Fri, 31 Jul 2015 14:31:35 +0000 (14:31 +0000)]
[CaptureTracker] Provide an ordered basic block to PointerMayBeCapturedBefore

This patch is a follow up from r240560 and is a step further into
mitigating the compile time performance issues in CaptureTracker.

By providing the CaptureTracker with a "cached ordered basic block"
instead of computing it every time, MemDepAnalysis can use this cache
throughout its calls to AA->callCapturesBefore, avoiding to recompute it
for every scanned instruction. In the same testcase used in r240560,
compile time is reduced from 2min to 30s.

This also fixes PR22348.

rdar://problem/19230319
Differential Revision: http://reviews.llvm.org/D11364

llvm-svn: 243750

9 years agoImprove man page markup
Ed Maste [Fri, 31 Jul 2015 14:26:15 +0000 (14:26 +0000)]
Improve man page markup

Patch by Baptiste Daroussin

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

llvm-svn: 243749

9 years agoReport original thread ID for FreeBSD core files
Ed Maste [Fri, 31 Jul 2015 14:24:32 +0000 (14:24 +0000)]
Report original thread ID for FreeBSD core files

On FreeBSD the tid is (somewhat unintuitively) found in the pr_pid
field of the NT_PRSTATUS note. Collect it when parsing the note and
store it in the thread data.

For Linux I've left the original behaviour of using sequential TIDs
(0, 1, 2...) as I don't yet have code to obtain it.

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

llvm-svn: 243748

9 years ago[clang-tidy] Support replacements in macro arguments in misc-inefficient-algorithm
Alexander Kornienko [Fri, 31 Jul 2015 13:34:58 +0000 (13:34 +0000)]
[clang-tidy] Support replacements in macro arguments in misc-inefficient-algorithm

Summary:
Support replacements in macro arguments in the
misc-inefficient-algorithm check.

Reviewers: klimek

Subscribers: cfe-commits

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

llvm-svn: 243747

9 years agoFix __floatsitf() for negative input
Sergey Dmitrouk [Fri, 31 Jul 2015 13:32:09 +0000 (13:32 +0000)]
Fix __floatsitf() for negative input

Negative numbers were handled properly initially, but got broken
during addressing review, so none of them did actually work.  Issues:
 * Wrong negation.
 * Wrong exponent calculation.

llvm-svn: 243746

9 years ago[regalloc] Make RegMask clobbers prevent merging vreg's into PhysRegs when hoisting...
Daniel Sanders [Fri, 31 Jul 2015 12:58:55 +0000 (12:58 +0000)]
[regalloc] Make RegMask clobbers prevent merging vreg's into PhysRegs when hoisting def's upwards.

Summary:
This prevents vreg260 and D7 from being merged in:
  %vreg260<def> = LDC1 ...
  JAL <ga:@sin>, <regmask ... list not containing D7 ...>
  %D7<def> = COPY %vreg260; ...
Doing so is not valid because the JAL clobbers the D7.

This fixes the almabench regression in the LLVM 3.7.0 release branch.

Reviewers: MatzeB

Subscribers: MatzeB, qcolombet, hans, llvm-commits

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

llvm-svn: 243745

9 years agoRe-commit r243686 - [Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap
Daniel Sanders [Fri, 31 Jul 2015 11:29:25 +0000 (11:29 +0000)]
Re-commit r243686 - [Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap

The builder remains broken in the same way without this patch so this patch is
innocent.

llvm-svn: 243744

9 years ago[AArch64|DFSAN] XPASS custom.cc, as it got fixed by r243686
Renato Golin [Fri, 31 Jul 2015 10:50:29 +0000 (10:50 +0000)]
[AArch64|DFSAN] XPASS custom.cc, as it got fixed by r243686

llvm-svn: 243743

9 years agoEscape new line and tabs in the result of variable evaluation.
Hafiz Abid Qadeer [Fri, 31 Jul 2015 09:24:39 +0000 (09:24 +0000)]
Escape new line and tabs in the result of variable evaluation.

Expression evaluation error messages may have embedded new lines
and tabs. These should be escaped in the result string.

Patch by paulmaybee. Reviewed in http://reviews.llvm.org/D11570.

llvm-svn: 243741

9 years agoRevert r243686 - [Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap
Daniel Sanders [Fri, 31 Jul 2015 09:04:37 +0000 (09:04 +0000)]
Revert r243686 - [Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap

It's implicated in a buildbot failure and while the failure looks unrelated,
this commit is the only probably candidate in the blamelist.

llvm-svn: 243740

9 years agoOutline function Parser::ParseCXXClassMemberDeclarationWithPragmas(), NFC.
Alexey Bataev [Fri, 31 Jul 2015 08:42:25 +0000 (08:42 +0000)]
Outline function Parser::ParseCXXClassMemberDeclarationWithPragmas(), NFC.

Parsing of pragmas followed by a class member declaration is outlined into a separate function Parser::ParseCXXClassMemberDeclarationWithPragmas().

llvm-svn: 243739

9 years agoFix Clang-tidy misc-use-override warnings in some files in include/lldb/Core, unify...
Pavel Labath [Fri, 31 Jul 2015 08:17:10 +0000 (08:17 +0000)]
Fix Clang-tidy misc-use-override warnings in some files in include/lldb/Core, unify closing inclusion guards

Patch by Eugene Zelenko

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

llvm-svn: 243738

9 years agoPrint message when configuring for standalone build.
Eric Fiselier [Fri, 31 Jul 2015 06:08:32 +0000 (06:08 +0000)]
Print message when configuring for standalone build.

llvm-svn: 243737

9 years agoMove the computation of whether a DWARF compile unit
Jason Molenda [Fri, 31 Jul 2015 05:47:00 +0000 (05:47 +0000)]
Move the computation of whether a DWARF compile unit
is optimized into DWARFCompileUnit, where it should have
been.  Next I'll need to call this from another section
of code for DWARF-in-.o-file behavior correctness.

llvm-svn: 243736

9 years agoCOFF: When resolving _load_config_used, add it as a GC root.
Peter Collingbourne [Fri, 31 Jul 2015 05:33:34 +0000 (05:33 +0000)]
COFF: When resolving _load_config_used, add it as a GC root.

This fixes the cases where the symbol is defined in a comdat or by bitcode.

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

llvm-svn: 243735

9 years agoRefactor: Simplify boolean conditional return statements in lib/Target/NVPTX
Jingyue Wu [Fri, 31 Jul 2015 05:09:47 +0000 (05:09 +0000)]
Refactor: Simplify boolean conditional return statements in lib/Target/NVPTX

Summary: Use clang-tidy to simplify boolean conditional return statements

Reviewers: rafael, echristo, chandlerc, bkramer, craig.topper, dexonsmith, chapuni, eliben, jingyue, jholewinski

Subscribers: llvm-commits, jholewinski

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

llvm-svn: 243734

9 years agoFix failing unique_ptr tests.
Eric Fiselier [Fri, 31 Jul 2015 04:34:25 +0000 (04:34 +0000)]
Fix failing unique_ptr tests.

When I was refactoring the unique_ptr.single.ctor tests I added a test
deleter, 'NCDeleter', to deleter.h. Other tests that include deleter.h
redefine the NCDeleter type causing test failures.

llvm-svn: 243733

9 years agoAdd another log to the Host channel for logging
Jason Molenda [Fri, 31 Jul 2015 04:21:25 +0000 (04:21 +0000)]
Add another log to the Host channel for logging
the actions taken when trying to locate binaries.

llvm-svn: 243732

9 years agoAMDGPU: Fix v16i32 to v16i8 truncstore
Matt Arsenault [Fri, 31 Jul 2015 04:12:04 +0000 (04:12 +0000)]
AMDGPU: Fix v16i32 to v16i8 truncstore

llvm-svn: 243731

9 years agoStart cleanup of unique_ptr tests.
Eric Fiselier [Fri, 31 Jul 2015 02:43:52 +0000 (02:43 +0000)]
Start cleanup of unique_ptr tests.

One of the last sections of tests that still fail in C++03 are the unique_ptr
tests. This patch begins cleaning up the tests and fixing C++03 failures.

The main changes of this patch:
  - The "Deleter" type in "deleter.h" tried to be "move-only" in C++03. However
    the move simulation no longer works (see "__rv"). "Deleter" is now copy
    constructible in C++03. However copying "Deleter" will "move" the test value
    instead of copying it.

  - Reduce the unique.ptr.single.ctor tests files from ~25 to 4. There is no
    reason the tests were split through so many files.

llvm-svn: 243730

9 years agoMark any as done and comment out extra methods until speaking to Marshall
Eric Fiselier [Fri, 31 Jul 2015 02:29:11 +0000 (02:29 +0000)]
Mark any as done and comment out extra methods until speaking to Marshall

llvm-svn: 243729

9 years ago[libcxx] Add <experimental/any> v2.
Eric Fiselier [Fri, 31 Jul 2015 02:24:58 +0000 (02:24 +0000)]
[libcxx] Add <experimental/any> v2.

Summary:
This patch adds the second revision of <experimental/any>.
I've been working from the LFTS draft found at this link. https://rawgit.com/cplusplus/fundamentals-ts/v1/fundamentals-ts.html#any

Reviewers: danalbert, jroelofs, K-ballo, mclow.lists

Subscribers: cfe-commits

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

llvm-svn: 243728

9 years agoMake sure the 2 method calls are sequenced.
Argyrios Kyrtzidis [Fri, 31 Jul 2015 01:39:23 +0000 (01:39 +0000)]
Make sure the 2 method calls are sequenced.

llvm-svn: 243727

9 years ago[libFuzzer] trace switch statements and apply mutations based on the expected case...
Kostya Serebryany [Fri, 31 Jul 2015 01:33:06 +0000 (01:33 +0000)]
[libFuzzer] trace switch statements and apply mutations based on the expected case values

llvm-svn: 243726

9 years agoAdd -Wno-error by default to work around failing compiler-rt builds
Eric Fiselier [Fri, 31 Jul 2015 01:25:01 +0000 (01:25 +0000)]
Add -Wno-error by default to work around failing compiler-rt builds

llvm-svn: 243725

9 years agoELFYAML: Enable parsing of EM_AMDGPU
Tom Stellard [Fri, 31 Jul 2015 01:15:15 +0000 (01:15 +0000)]
ELFYAML: Enable parsing of EM_AMDGPU

Subscribers: llvm-commits

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

llvm-svn: 243724

9 years agoAMDGPU/SI: Set DwarfRegNum
Matt Arsenault [Fri, 31 Jul 2015 01:12:10 +0000 (01:12 +0000)]
AMDGPU/SI: Set DwarfRegNum

This requires a fix in tablegen for the cast<int> from bits<16>
to work in the list initializer.

llvm-svn: 243723

9 years agoTableGen: Support folding casts from bits to int
Matt Arsenault [Fri, 31 Jul 2015 01:12:06 +0000 (01:12 +0000)]
TableGen: Support folding casts from bits to int

This is to fix an incorrect error when trying to initialize
DwarfNumbers with a !cast<int> of a bits initializer.
getValuesAsListOfInts("DwarfNumbers") would not see an IntInit
and instead the cast, so would give up.

It seems likely that this could be generalized to attempt
the convertInitializerTo for any type. I'm not really sure
why the existing code seems to special case the string cast cases
when convertInitializerTo seems like it should generally handle this
sort of thing.

llvm-svn: 243722

9 years ago[libFuzzer] prepare for __sanitizer_cov_trace_switch in libFuzzer and sanitizer cover...
Kostya Serebryany [Fri, 31 Jul 2015 01:07:12 +0000 (01:07 +0000)]
[libFuzzer] prepare for __sanitizer_cov_trace_switch in libFuzzer and sanitizer coverage. Also fix pedantic warnings

llvm-svn: 243721

9 years agodocs: Add information about helper scripts to HowToReleaseLLVM page
Tom Stellard [Fri, 31 Jul 2015 01:02:35 +0000 (01:02 +0000)]
docs: Add information about helper scripts to HowToReleaseLLVM page

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

llvm-svn: 243720

9 years agoAMDGPU/SI: Remove unused pattern for f32 constant loads
Tom Stellard [Fri, 31 Jul 2015 01:02:32 +0000 (01:02 +0000)]
AMDGPU/SI: Remove unused pattern for f32 constant loads

Reviewers: arsenm

Subscribers: llvm-commits

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

llvm-svn: 243719

9 years ago[modules] Fix issue where building a module from a relative path when -working-direct...
Argyrios Kyrtzidis [Fri, 31 Jul 2015 00:58:32 +0000 (00:58 +0000)]
[modules] Fix issue where building a module from a relative path when -working-directory option is set, results in error.

The error was "module '<name>' was built in directory '<path>' but now resides in directory '<path>'
rdar://21330027

llvm-svn: 243718

9 years ago[ARM] Lower modulo operation to generate __aeabi_divmod on Android
Sumanth Gundapaneni [Fri, 31 Jul 2015 00:45:12 +0000 (00:45 +0000)]
[ARM] Lower modulo operation to generate __aeabi_divmod on Android

For a modulo (reminder) operation,
clang -target armv7-none-linux-gnueabi generates "__modsi3"
clang -target armv7-none-eabi generates "__aeabi_idivmod"
clang -target armv7-linux-androideabi generates "__modsi3"
Android bionic libc doesn't provide a __modsi3, instead it provides a
"__aeabi_idivmod". This patch fixes the LLVM ARMISelLowering to generate
the correct call when ever there is a modulo operation.

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

llvm-svn: 243717

9 years agoAllow ValueObject::Dereference to dereference references.
Chaoren Lin [Fri, 31 Jul 2015 00:35:40 +0000 (00:35 +0000)]
Allow ValueObject::Dereference to dereference references.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 243716

9 years agoFix build of lldb on Mavericks after svn rev.243511.
Dawn Perchik [Fri, 31 Jul 2015 00:26:46 +0000 (00:26 +0000)]
Fix build of lldb on Mavericks after svn rev.243511.

This patch adds a test for ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED
around the code which requires 10.10 support to link. Without this, lldb
gets unresolved references to _csr_check and _rootless_allows_task_for_pid.

Reviewed by: jasonmolenda
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D11668

llvm-svn: 243715

9 years ago[asan] Fix signal() interception on 64-bit Android.
Evgeniy Stepanov [Fri, 31 Jul 2015 00:00:03 +0000 (00:00 +0000)]
[asan] Fix signal() interception on 64-bit Android.

The bsd_signal() special case only applies to 32-bit Android targets.
Fixes AddressSanitizer.SignalTest on aarch64/android.

llvm-svn: 243714

9 years agoCOFF: Move code for Identical COMDAT Folding to ICF.cpp.
Rui Ueyama [Thu, 30 Jul 2015 22:57:21 +0000 (22:57 +0000)]
COFF: Move code for Identical COMDAT Folding to ICF.cpp.

llvm-svn: 243701

9 years agoCOFF: Handle all COMDAT sections as non-GC root.
Rui Ueyama [Thu, 30 Jul 2015 22:48:45 +0000 (22:48 +0000)]
COFF: Handle all COMDAT sections as non-GC root.

I don't remember why I thought that only functions are subject
of garbage collection, but the comment here said so, which is
not correct. Moreover, the code just below the comment does not
do what the comment says -- it handles non-COMDAT, non-function
sections as GC root. As a result, it just handles non-COMDAT
sections as GC root.

This patch cleans that up by removing SectionChunk::isRoot and
use isCOMDAT instead.

llvm-svn: 243700

9 years agoReapply working parts of CMake cleanup.
Eric Fiselier [Thu, 30 Jul 2015 22:30:34 +0000 (22:30 +0000)]
Reapply working parts of CMake cleanup.

This patch adds the working parts of r243503. The difference with this patch
is that it doesn't include the HandleLLVMOptions.cmake file.

llvm-svn: 243698

9 years agoFix help message for target.language setting.
Dawn Perchik [Thu, 30 Jul 2015 22:10:08 +0000 (22:10 +0000)]
Fix help message for target.language setting.

llvm-svn: 243697

9 years agoMIR Parser: Report an error when a constant pool item is redefined.
Alex Lorenz [Thu, 30 Jul 2015 22:00:17 +0000 (22:00 +0000)]
MIR Parser: Report an error when a constant pool item is redefined.

llvm-svn: 243696

9 years agoMIR Parser: Report an error when a virtual register is redefined.
Alex Lorenz [Thu, 30 Jul 2015 21:54:10 +0000 (21:54 +0000)]
MIR Parser: Report an error when a virtual register is redefined.

llvm-svn: 243695

9 years agoSplit DWARF: Allow -gmlt/-gsplit-dwarf to override rather than complement each other
David Blaikie [Thu, 30 Jul 2015 21:42:22 +0000 (21:42 +0000)]
Split DWARF: Allow -gmlt/-gsplit-dwarf to override rather than complement each other

It doesn't make any sense to enable -gmlt with -gsplit-dwarf, since
-gmlt is designed for on-line symbolication (and -gsplit-dwarf normally
emits all the -gmlt data into the .o anyway - so there's nothing to
split out except redundant/duplicate info).

With this change they override each other, -gmlt -gsplit-dwarf is the
same as -gsplit-dwarf and -gsplit-dwarf -gmlt is the same as -gmlt.

llvm-svn: 243694

9 years agofix memcpy/memset/memmove lowering when optimizing for size
Sanjay Patel [Thu, 30 Jul 2015 21:41:50 +0000 (21:41 +0000)]
fix memcpy/memset/memmove lowering when optimizing for size

Fixing MinSize attribute handling was discussed in D11363.
This is a prerequisite patch to doing that.

The handling of OptSize when lowering mem* functions was broken
on Darwin because it wants to ignore -Os for these cases, but the
existing logic also made it ignore -Oz (MinSize).

The Linux change demonstrates a widespread problem. The backend
doesn't usually recognize the MinSize attribute by itself; it
assumes that if the MinSize attribute exists, then the OptSize
attribute must also exist.

Fixing this more generally will be a follow-on patch or two.

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

llvm-svn: 243693

9 years agoImproved error recovery for _Pragma
Hubert Tong [Thu, 30 Jul 2015 21:30:00 +0000 (21:30 +0000)]
Improved error recovery for _Pragma

Summary:
Currently, if the argument to _Pragma is not a parenthesised string
literal, the bad token will be consumed, as well as the ')', if present.
If additional bad tokens are passed to the _Pragma, this results in
extra error messages which may distract from the true problem.

The proposed patch causes all tokens to be consumed until the closing
')' or a new line, whichever is reached first.

Reviewers: hfinkel, rsmith

Subscribers: hubert.reinterpretcast, fraggamuffin, rnk, cfe-commits

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

Patch by Rachel Craik!

llvm-svn: 243692

9 years ago[libFuzzer] fix the strncmp interceptor -- it should respect short strings.
Kostya Serebryany [Thu, 30 Jul 2015 21:22:22 +0000 (21:22 +0000)]
[libFuzzer] fix the strncmp interceptor -- it should respect short strings.

llvm-svn: 243691

9 years ago[Concepts] Add diagnostic: non template declaration
Hubert Tong [Thu, 30 Jul 2015 21:20:55 +0000 (21:20 +0000)]
[Concepts] Add diagnostic: non template declaration

Summary:
Adding diagnostic for concepts declared as non template (function
or variable)

Reviewers: faisalv, fraggamuffin, rsmith, hubert.reinterpretcast

Subscribers: nwilson, cfe-commits

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

Patch by Nathan Wilson!

llvm-svn: 243690

9 years agoFix TableGen code generation for ReadNone attribute.
Eric Christopher [Thu, 30 Jul 2015 21:16:34 +0000 (21:16 +0000)]
Fix TableGen code generation for ReadNone attribute.

Patch by Pete Abred!

llvm-svn: 243689

9 years ago[dfsan] Enable dfsan for aarch64
Adhemerval Zanella [Thu, 30 Jul 2015 21:13:21 +0000 (21:13 +0000)]
[dfsan] Enable dfsan for aarch64

This patch enable DFSan for AArch64 (39-bit VMA).  All tests are passing
but:

 * test/dfsan/custom.cc

Due an invalid access in dl_iterate_phdr instrumentation (commenting out
this function make the testcase to pass).  The test is XFAIL for aarch64
for now.

llvm-svn: 243688

9 years agoenable fast-math-flag propagation to DAG nodes
Sanjay Patel [Thu, 30 Jul 2015 21:06:55 +0000 (21:06 +0000)]
enable fast-math-flag propagation to DAG nodes

This uncovered latent bugs previously:
http://reviews.llvm.org/D10403

...but it's time to try again because internal tests aren't finding more.

If time passes and no other bugs are reported, we can remove this cl::opt.

llvm-svn: 243687

9 years ago[Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap
Daniel Sanders [Thu, 30 Jul 2015 21:00:48 +0000 (21:00 +0000)]
[Sanitizers] [Bug 24151] Generalize type of offset in internal_mmap

Summary:
Using u64 as type for offset changes its value, changing starting address for map in file.
This patch solves Bug 24151, which raises issue while mapping file in mips32.

Patch by Mohit Bhakkad

Reviewers: dsanders, kcc

Subscribers: hans, llvm-commits, samsonov, nitesh.jain, sagar, bhushan, jaydeep

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

llvm-svn: 243686

9 years ago[sanitizers] Enable dfsan for aarch64
Adhemerval Zanella [Thu, 30 Jul 2015 20:50:39 +0000 (20:50 +0000)]
[sanitizers] Enable dfsan for aarch64

This patch enables DFSan for aarch64/linux.

llvm-svn: 243685

9 years agoEnable dfsan for aarch64
Adhemerval Zanella [Thu, 30 Jul 2015 20:49:35 +0000 (20:49 +0000)]
Enable dfsan for aarch64

This patch enable DFSan memory transformation for aarch64 (39-bit VMA).

llvm-svn: 243684

9 years agoRemove trailing whitespace.
Rui Ueyama [Thu, 30 Jul 2015 20:47:17 +0000 (20:47 +0000)]
Remove trailing whitespace.

llvm-svn: 243683

9 years agoAdd a TargetMachine hook that verifies DataLayout compatibility
Mehdi Amini [Thu, 30 Jul 2015 20:33:18 +0000 (20:33 +0000)]
Add a TargetMachine hook that verifies DataLayout compatibility

Summary: Also provide the associated assertion when CodeGen starts.

Reviewers: echristo

Subscribers: llvm-commits

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

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 243682

9 years agoConvert the ScriptInterpreter system to a plugin-based one.
Zachary Turner [Thu, 30 Jul 2015 20:28:07 +0000 (20:28 +0000)]
Convert the ScriptInterpreter system to a plugin-based one.

Previously embedded interpreters were handled as ad-hoc source
files compiled into source/Interpreter.  This made it hard to
disable a specific interpreter, or to add support for other
interpreters and allow the developer to choose which interpreter(s)
were enabled for a particular build.

This patch converts script interpreters over to a plugin-based system.
Script interpreters now live in source/Plugins/ScriptInterpreter, and
the canonical LLDB interpreter, ScriptInterpreterPython, is moved there
as well.

Any new code interfacing with the Python C API must live in this location
from here on out.  Additionally, generic code should never need to
reference or make assumptions about the presence of a specific interpreter
going forward.

Differential Revision: http://reviews.llvm.org/D11431
Reviewed By: Greg Clayton

llvm-svn: 243681

9 years agoCOFF: Sort output sections which start with .debug to the end of the file
David Majnemer [Thu, 30 Jul 2015 20:26:55 +0000 (20:26 +0000)]
COFF: Sort output sections which start with .debug to the end of the file

We want to convince the NT loader not to map these sections into memory.
A good first step is to move them to the end of the executable.

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

llvm-svn: 243680

9 years ago[asan] Support arm64 devices in asan_device_setup.
Evgeniy Stepanov [Thu, 30 Jul 2015 20:07:13 +0000 (20:07 +0000)]
[asan] Support arm64 devices in asan_device_setup.

llvm-svn: 243679

9 years agoMove computations out of constructors
Michael Kruse [Thu, 30 Jul 2015 19:27:04 +0000 (19:27 +0000)]
Move computations out of constructors

It is common practice to keep constructors lightweight. The reasons
include:

- The vtable during the constructor's execution is set to the static
type of the object, not to the vtable of the derived class. That is,
method calls behave differently in constructors and ordinary methods.
This way it is possible to call unimplemented methods of abstract
classes, which usually results in a segmentation fault.

- If an exception is thrown in the constructor, the destructor is not
called, potentially leaking memory.

- Code in constructors cannot be called in a regular way, e.g. from
non-constructor methods of derived classes.

- Because it is common practice, people may not expect the constructor
to do more than initializing data and skip them when looking for bugs.

Not all of these are applicable to LLVM (e.g. exceptions are disabled).

This patch refactors out the computational work in the constructors of
Scop and IslAst into regular init functions and introduces static
create-functions as replacement.

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

Reviewers: grosser, jdoerfert
llvm-svn: 243677

9 years ago[sema] Allow to opt-out of overriding the super class's designated initializers by...
Argyrios Kyrtzidis [Thu, 30 Jul 2015 19:06:04 +0000 (19:06 +0000)]
[sema] Allow to opt-out of overriding the super class's designated initializers by marking the initializer as unavailable in the subclass.

rdar://20281322

llvm-svn: 243676

9 years agotesting for tail call optimization repression when sanitizing use-after-dtor
Naomi Musgrave [Thu, 30 Jul 2015 18:46:18 +0000 (18:46 +0000)]
testing for tail call optimization repression when sanitizing use-after-dtor

Summary: Verify that running in optimized mode while checking for use-after-dtor errors, does not generate tail call invocation of destructor. This avoids possible error where stack frame for the destructor is eliminated, making tracking down the errors more difficult.

Reviewers: eugenis, kcc

Subscribers: cfe-commits

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

simplified test cases

updated line numbering on test

renamed test

llvm-svn: 243675

9 years agoFix PR#24267. use numeric_limits::max instead of ~0 for 'all ones', since that might...
Marshall Clow [Thu, 30 Jul 2015 18:26:34 +0000 (18:26 +0000)]
Fix PR#24267. use numeric_limits::max instead of ~0 for 'all ones', since that might give wrong answers on a 1's complement machine.

llvm-svn: 243674

9 years agosimplified test case
Naomi Musgrave [Thu, 30 Jul 2015 17:59:55 +0000 (17:59 +0000)]
simplified test case

llvm-svn: 243673

9 years agoremoved hardcoding for attribute associated with dtor in test
Naomi Musgrave [Thu, 30 Jul 2015 17:59:54 +0000 (17:59 +0000)]
removed hardcoding for attribute associated with dtor in test

llvm-svn: 243672

9 years agoTesting to verify function attribute disable-tail-calls applied to destructor
Naomi Musgrave [Thu, 30 Jul 2015 17:59:52 +0000 (17:59 +0000)]
Testing to verify function attribute disable-tail-calls applied to destructor

llvm-svn: 243671

9 years agoupdated test to be more explicit
Naomi Musgrave [Thu, 30 Jul 2015 17:59:50 +0000 (17:59 +0000)]
updated test to be more explicit

llvm-svn: 243670

9 years agoUpdated test regex and flags
Naomi Musgrave [Thu, 30 Jul 2015 17:59:48 +0000 (17:59 +0000)]
Updated test regex and flags

llvm-svn: 243669