platform/upstream/llvm.git
10 years agoMake Android's ctype_base::mask unsigned.
Dan Albert [Thu, 31 Jul 2014 21:04:08 +0000 (21:04 +0000)]
Make Android's ctype_base::mask unsigned.

Keeping the regex code sane is much easier if we match the other
platforms and use an unsigned mask.

llvm-svn: 214442

10 years agoRemove shell-globbing from all test makefiles.
Zachary Turner [Thu, 31 Jul 2014 21:03:11 +0000 (21:03 +0000)]
Remove shell-globbing from all test makefiles.

llvm-svn: 214441

10 years agoImprove the remark generated when a variable that is used outside the loop is not...
Tyler Nowicki [Thu, 31 Jul 2014 21:02:40 +0000 (21:02 +0000)]
Improve the remark generated when a variable that is used outside the loop is not a reduction or induction variable.

Reviewed by Arnold Schwaighofer

llvm-svn: 214440

10 years agoReplaces a few pointers with references in llvm-nm.cpp.
Rafael Espindola [Thu, 31 Jul 2014 21:00:10 +0000 (21:00 +0000)]
Replaces a few pointers with references in llvm-nm.cpp.

This opens the way for a few std::uinque_ptr cleanups.

llvm-svn: 214439

10 years agoFixing CMake problems with MCObjectDisassembler.cpp not existing.
Aaron Ballman [Thu, 31 Jul 2014 20:48:54 +0000 (20:48 +0000)]
Fixing CMake problems with MCObjectDisassembler.cpp not existing.

llvm-svn: 214438

10 years agoRemove MCObjectDisassembler.cpp as it is untested and unused.
Eric Christopher [Thu, 31 Jul 2014 20:44:46 +0000 (20:44 +0000)]
Remove MCObjectDisassembler.cpp as it is untested and unused.

llvm-svn: 214437

10 years agoImplemented a diagnostic to handle multiple, distinct ownership_return attributes...
Aaron Ballman [Thu, 31 Jul 2014 20:44:26 +0000 (20:44 +0000)]
Implemented a diagnostic to handle multiple, distinct ownership_return attributes on the same declaration. This removes a FIXME from the code.

llvm-svn: 214436

10 years agomsbuild integration: remove duplicated lines and BOM from 2014 integration (PR20341)
Hans Wennborg [Thu, 31 Jul 2014 20:33:22 +0000 (20:33 +0000)]
msbuild integration: remove duplicated lines and BOM from 2014 integration (PR20341)

llvm-svn: 214435

10 years agoDWOHolder takes ownership of the argument constructor, use std::unique_ptr.
Rafael Espindola [Thu, 31 Jul 2014 20:26:42 +0000 (20:26 +0000)]
DWOHolder takes ownership of the argument constructor, use std::unique_ptr.

Thanks to David Blaikie for noticing it.

llvm-svn: 214434

10 years agoUse a reference instead of a pointer.
Rafael Espindola [Thu, 31 Jul 2014 20:19:36 +0000 (20:19 +0000)]
Use a reference instead of a pointer.

This makes using a std::unique_ptr in the caller more convenient.

llvm-svn: 214433

10 years agoAdd a state variable to the loop hint attribute.
Tyler Nowicki [Thu, 31 Jul 2014 20:15:14 +0000 (20:15 +0000)]
Add a state variable to the loop hint attribute.

This patch is necessary to support constant expressions which replaces the integer value in the loop hint attribute with an expression. The integer value was also storing the pragma’s state for options like vectorize(enable/disable) and the pragma unroll and nounroll directive. The state variable is introduced to hold the state of those options/pragmas. This moves the validation of the state (keywords) from SemaStmtAttr handler to the loop hint annotation token handler.

Resubmit with changes to try to fix the build-bot issue.

Reviewed by Aaron Ballman

llvm-svn: 214432

10 years agoAdd documentation for lit's --show-unsupported flag
Eric Fiselier [Thu, 31 Jul 2014 20:11:13 +0000 (20:11 +0000)]
Add documentation for lit's --show-unsupported flag

llvm-svn: 214431

10 years agoClarify in PowerPC release notes that 32-bit PIC support is incomplete.
Bill Schmidt [Thu, 31 Jul 2014 20:04:51 +0000 (20:04 +0000)]
Clarify in PowerPC release notes that 32-bit PIC support is incomplete.

As requested, changing this wording slightly.

Thanks,
Bill

llvm-svn: 214430

10 years agoDisable IsSub subregister assert. pr18663.
Will Schmidt [Thu, 31 Jul 2014 19:50:53 +0000 (19:50 +0000)]
Disable IsSub subregister assert.  pr18663.

This is a follow-up to the activity in the bug at
http://llvm.org/bugs/show_bug.cgi?id=18663 .  The underlying issue has
to do with how the KILL pseudo-instruction is handled.  I defer to
Hal/Jakob/Uli for additional details and background.

This will disable the (bad?) assert, add an associated fixme comment,
and add a pair of tests.

The code change and the pr18663-2.ll test are copied from the referenced
bug.  That test does not immediately fail in my environment, but I have
added the pr18663.ll test which does.

(Comment from Hal)
to provide everyone else with some context, this assert was not bad when
it was written. At that time, we only generated KILL pseudo instructions
around subregister copies. This logic, unfortunately, had its own problems.
In r199797, the relevant logic in MachineCopyPropagation was replaced to
generate KILLs for other kinds of copies too. This change in semantics broke
this now-problematic assumption in AggressiveAntiDepBreaker. The
AggressiveAntiDepBreaker really needs a proper cleanup to deal with the
change, but removing the assert (which just allows the function to return
false) is a safe conservative behavior, and should do for the time being.

llvm-svn: 214429

10 years agoFixed an issue where the LLDB command prompt isn't interactive if you use -o -O ...
Greg Clayton [Thu, 31 Jul 2014 19:46:19 +0000 (19:46 +0000)]
Fixed an issue where the LLDB command prompt isn't interactive if you use -o -O -S -s or specify a file on the command line.

This means TAB completion wasn't working and editline wasn't being used.

<rdar://problem/17872824>

llvm-svn: 214428

10 years agoRemove unused argument.
Rafael Espindola [Thu, 31 Jul 2014 19:32:04 +0000 (19:32 +0000)]
Remove unused argument.

Thanks to Justin Bogner for noticing it.

llvm-svn: 214426

10 years agoLocal extern redeclarations of dllimport variables stay dllimport even if they don...
Hans Wennborg [Thu, 31 Jul 2014 19:29:39 +0000 (19:29 +0000)]
Local extern redeclarations of dllimport variables stay dllimport even if they don't specify the attribute

llvm-svn: 214425

10 years agoMove MCObjectSymbolizer.h to MC/MCAnalysis.
Rafael Espindola [Thu, 31 Jul 2014 19:29:23 +0000 (19:29 +0000)]
Move MCObjectSymbolizer.h to MC/MCAnalysis.

The cpp file is already in lib/MC/MCAnalysis.

llvm-svn: 214424

10 years agoFix ScalarEvolutionExpander when creating a PHI in a block with duplicate predecessors
Hal Finkel [Thu, 31 Jul 2014 19:13:38 +0000 (19:13 +0000)]
Fix ScalarEvolutionExpander when creating a PHI in a block with duplicate predecessors

It seems that when I fixed this, almost exactly a year ago, I did not quite do
it correctly. When we have duplicate block predecessors, we can indeed not have
different incoming values for the same block, but we *must* have duplicate
entries. So, instead of skipping the duplicates, we explicitly add the
duplicate incoming values.

Fixes PR20442.

llvm-svn: 214423

10 years ago[libcxx] Remove use of default function template parameters in type traits. Fixes...
Eric Fiselier [Thu, 31 Jul 2014 19:09:26 +0000 (19:09 +0000)]
[libcxx] Remove use of default function template parameters in type traits. Fixes DR20484

Summary: This patch moves the SFINAE for __is_destructor_welformed out of the function template parameters. type_traits must compile in c++03 mode since it is included in c++03 headers.

Test Plan: No tests have been added.

Reviewers: danalbert, mclow.lists

Reviewed By: danalbert

Subscribers: K-ballo, cfe-commits

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

llvm-svn: 214422

10 years ago[Sanitizer] Don't try to parse unspecified suppressions file
Alexey Samsonov [Thu, 31 Jul 2014 19:06:47 +0000 (19:06 +0000)]
[Sanitizer] Don't try to parse unspecified suppressions file

llvm-svn: 214421

10 years agoXFAIL the ARM test when we don't have this target.
Simon Atanasyan [Thu, 31 Jul 2014 19:02:10 +0000 (19:02 +0000)]
XFAIL the ARM test when we don't have this target.

llvm-svn: 214420

10 years agoverify-uselistorder: Change the default -num-shuffles=5
Duncan P. N. Exon Smith [Thu, 31 Jul 2014 18:46:24 +0000 (18:46 +0000)]
verify-uselistorder: Change the default -num-shuffles=5

Change the default for `-num-shuffles` to 5 and better document the
algorithm in the header docs of `verify-uselistorder`.

llvm-svn: 214419

10 years agoCreate a default symver on Linux like ELF OSes.
Eric Christopher [Thu, 31 Jul 2014 18:43:43 +0000 (18:43 +0000)]
Create a default symver on Linux like ELF OSes.

Patch by Adam Jackson.

llvm-svn: 214418

10 years agoUseListOrder: Handle self-users
Duncan P. N. Exon Smith [Thu, 31 Jul 2014 18:33:12 +0000 (18:33 +0000)]
UseListOrder: Handle self-users

Correctly sort self-users (such as PHI nodes).  I added a targeted test
in `test/Bitcode/use-list-order.ll` and the final missing RUN line to
tests in `test/Assembly`.

This is part of PR5680.

llvm-svn: 214417

10 years agoFix loop end condition.
Eric Christopher [Thu, 31 Jul 2014 18:28:08 +0000 (18:28 +0000)]
Fix loop end condition.

Note: This code appears to be untested.
llvm-svn: 214416

10 years agoRewrote the initial DW_OP_piece support to be able to support opcodes like:
Greg Clayton [Thu, 31 Jul 2014 18:19:28 +0000 (18:19 +0000)]
Rewrote the initial DW_OP_piece support to be able to support opcodes like:

DW_OP_fbreg(N) DW_OP_piece(4) DW_OP_fbreg(M) DW_OP_piece(8)
DW_OP_fbreg(N) DW_OP_piece(4) DW_OP_piece(8)

The first grabs 4 bytes from FP+N followed by 8 bytes from FP+M, the second grabs 4 bytes from FP+N followed by zero filling 8 bytes which are unavailable. Of course regiters are stuff supported:

DW_OP_reg3 DW_OP_piece(4) DW_OP_reg8 DW_OP_piece(8)

The fix does the following:
1 - don't push the full piece value onto the stack, keep it on the side
2 - fill zeros for DW_OP_piece(N) opcodes that have nothing on the stack (instead of previously consuming the full piece that was pushed onto the stack)
3 - simplify the logic

<rdar://problem/16930524>

llvm-svn: 214415

10 years ago[mach-o] wire up -t option
Nick Kledzik [Thu, 31 Jul 2014 18:19:03 +0000 (18:19 +0000)]
[mach-o] wire up -t option

llvm-svn: 214414

10 years agoReformat docstring to 80-col
Eli Bendersky [Thu, 31 Jul 2014 18:12:17 +0000 (18:12 +0000)]
Reformat docstring to 80-col

llvm-svn: 214412

10 years agoRemoving an outdated FIXME. No functional changes.
Aaron Ballman [Thu, 31 Jul 2014 18:09:13 +0000 (18:09 +0000)]
Removing an outdated FIXME. No functional changes.

llvm-svn: 214411

10 years agoExposes a C API to name mangling for a given cursor.
Eli Bendersky [Thu, 31 Jul 2014 18:04:56 +0000 (18:04 +0000)]
Exposes a C API to name mangling for a given cursor.

Inspired by https://gist.github.com/tritao/2766291, and was previously discussed
on cfe-dev: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-June/037577.html

Adding testing capability via c-index-test.

llvm-svn: 214410

10 years agoObective-C. Patch to fix the incorrect ObjcMessageExpr argument source ranges,
Fariborz Jahanian [Thu, 31 Jul 2014 17:39:50 +0000 (17:39 +0000)]
Obective-C. Patch to fix the incorrect ObjcMessageExpr argument source ranges,
when arguments are structures or classes. PR16392.
patch by Karlis Senko

llvm-svn: 214409

10 years agoDelay check for prototype on __fastcall functions until after MergeFunctionDecl.
Nico Weber [Thu, 31 Jul 2014 17:19:18 +0000 (17:19 +0000)]
Delay check for prototype on __fastcall functions until after MergeFunctionDecl.

In C, it is only known after merging decls if a function with 0 arguments has
a prototype.  Fixes PR20386, see that for more notes.

llvm-svn: 214408

10 years agoAutomate attribute argument count semantic checking when there are variadic or option...
Aaron Ballman [Thu, 31 Jul 2014 16:37:04 +0000 (16:37 +0000)]
Automate attribute argument count semantic checking when there are variadic or optional arguments present. With this, the only time you should have to manually check attribute argument counts is when HasCustomParsing is set to true, or when you have variadic arguments that aren't really variadic (like ownership_holds and friends).

Updating the diagnostics in the launch_bounds test since they have been improved in that case. Adding a test for nonnull since it has little test coverage, but has truly variadic arguments.

llvm-svn: 214407

10 years agoAdd test cases for creating atomic types for trivially copyable types.
Marshall Clow [Thu, 31 Jul 2014 15:20:48 +0000 (15:20 +0000)]
Add test cases for creating atomic types for trivially copyable types.

llvm-svn: 214406

10 years agoWrong heading level for PowerPC changes in release notes
Bill Schmidt [Thu, 31 Jul 2014 15:20:30 +0000 (15:20 +0000)]
Wrong heading level for PowerPC changes in release notes

Oops.  Used the wrong heading level by mistake.

Thanks,
Bill

llvm-svn: 214405

10 years agoRelease Notes: Overriding PPC64 and PPC64LE ABI defaults is not yet supported.
Bill Schmidt [Thu, 31 Jul 2014 15:17:33 +0000 (15:17 +0000)]
Release Notes: Overriding PPC64 and PPC64LE ABI defaults is not yet supported.

I wrongly included a description of a patch that came in after 3.5 branched
and has not been backported.

Thanks,
Bill

llvm-svn: 214404

10 years agoAdd PowerPC release notes for 3.5.
Bill Schmidt [Thu, 31 Jul 2014 14:38:17 +0000 (14:38 +0000)]
Add PowerPC release notes for 3.5.

Here's my take on 3.5 changes for PowerPC.  Others please feel free to add,
edit, delete as desired.

Thanks,
Bill

llvm-svn: 214403

10 years agoAdd decorator for TestStopHookMultipleThreads failing on FreeBSD
Ed Maste [Thu, 31 Jul 2014 14:02:32 +0000 (14:02 +0000)]
Add decorator for TestStopHookMultipleThreads failing on FreeBSD

llvm.org/pr15037

llvm-svn: 214402

10 years agoms-inline-asm: Add a test to ensure that call doesn't clobber eax.
Ehsan Akhgari [Thu, 31 Jul 2014 13:43:17 +0000 (13:43 +0000)]
ms-inline-asm: Add a test to ensure that call doesn't clobber eax.

Note that it's not clear whether this is the right behavior, please see
the review for the discussion.

Reviewers: rnk

Subscribers: cfe-commits

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

llvm-svn: 214401

10 years agoFixing an -Woverloaded-virtual warnings by exposing the hidden virtual function as...
Aaron Ballman [Thu, 31 Jul 2014 12:58:50 +0000 (12:58 +0000)]
Fixing an -Woverloaded-virtual warnings by exposing the hidden virtual function as well. No functional changes intended.

llvm-svn: 214400

10 years agoFixing a -Wcast-qual warning in GCC. No functional changes.
Aaron Ballman [Thu, 31 Jul 2014 12:55:49 +0000 (12:55 +0000)]
Fixing a -Wcast-qual warning in GCC. No functional changes.

llvm-svn: 214399

10 years ago[msan] Fix handling of array types.
Evgeniy Stepanov [Thu, 31 Jul 2014 11:02:27 +0000 (11:02 +0000)]
[msan] Fix handling of array types.

Switch array type shadow from a single integer to
an array of integers (i.e. make it per-element).
This simplifies instrumentation of extractvalue and fixes PR20493.

llvm-svn: 214398

10 years ago[clang-tidy] Add a checker for code that looks like a delegate constructors but doesn...
Benjamin Kramer [Thu, 31 Jul 2014 09:58:52 +0000 (09:58 +0000)]
[clang-tidy] Add a checker for code that looks like a delegate constructors but doesn't delegate.

Summary:
class Foo {
  Foo() {
    Foo(42); // oops
  }
  Foo(int);
};

This is valid code but it does nothing and we can't emit a warning in clang
because there might be side effects. The checker emits a warning for this
pattern and also for base class initializers written in this style.

There is some overlap with the unused-rtti checker but they follow different
goals and fire in different places most of the time.

Reviewers: alexfh, djasper

Subscribers: cfe-commits

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

llvm-svn: 214397

10 years ago[asan] End-to-end test for REP MOVS instrumentation.
Evgeniy Stepanov [Thu, 31 Jul 2014 09:12:20 +0000 (09:12 +0000)]
[asan] End-to-end test for REP MOVS instrumentation.

Patch by Yuri Gorshenin.

llvm-svn: 214396

10 years ago[asan] Support x86 REP MOVS asm instrumentation.
Evgeniy Stepanov [Thu, 31 Jul 2014 09:11:04 +0000 (09:11 +0000)]
[asan] Support x86 REP MOVS asm instrumentation.

Patch by Yuri Gorshenin.

llvm-svn: 214395

10 years agotsan: use MADV_NOHUGEPAGE only if it is supported by platform
Dmitry Vyukov [Thu, 31 Jul 2014 08:24:59 +0000 (08:24 +0000)]
tsan: use MADV_NOHUGEPAGE only if it is supported by platform
Fixes build failure on an old system:
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-centos-6.5/builds/7555/steps/build/logs/stdio

llvm-svn: 214394

10 years agoFix parsing of classes where the class name is an absolute nested name specifier.
Manuel Klimek [Thu, 31 Jul 2014 07:19:30 +0000 (07:19 +0000)]
Fix parsing of classes where the class name is an absolute nested name specifier.

llvm-svn: 214393

10 years agoMergeFunctions, tiny refactoring:
Stepan Dyatkovskiy [Thu, 31 Jul 2014 07:16:59 +0000 (07:16 +0000)]
MergeFunctions, tiny refactoring:
cmpOperation has been renamed to cmpOperations (multiple form).

llvm-svn: 214392

10 years agoAdd a new directory path to
Jason Molenda [Thu, 31 Jul 2014 06:36:24 +0000 (06:36 +0000)]
Add a new directory path to
PlatformDarwinKernel::GetGenericSDKDirectoriesToSearch
 - /Library/Developer/KDKs where users may store
the kernel debug kits on their systems.

Change PlatformDarwinKernel::GetKextDirectoriesInSDK
to look in the root directory of places like
/Library/Developer/KDKs/KDK_10.10_14A298i.kdk
as well as the System/Library/Extensions subdir
in that directory (if it exists) and the
Library/Extensions subdir in that directory (if it
exists).
<rdar://problem/16568635>

llvm-svn: 214391

10 years agoPR18097: Support initializing an _Atomic(T) from an object of C++ class type T
Richard Smith [Thu, 31 Jul 2014 06:31:19 +0000 (06:31 +0000)]
PR18097: Support initializing an _Atomic(T) from an object of C++ class type T
or a class derived from T. We already supported this when initializing
_Atomic(T) from T for most (and maybe all) other reasonable values of T.

llvm-svn: 214390

10 years ago[FastISel][AArch64] Add basic bitcast support for conversion between float and int.
Juergen Ributzka [Thu, 31 Jul 2014 06:25:37 +0000 (06:25 +0000)]
[FastISel][AArch64] Add basic bitcast support for conversion between float and int.

Fixes <rdar://problem/17867078>.

llvm-svn: 214389

10 years ago[FastISel][AArch64] Add sqrt intrinsic support.
Juergen Ributzka [Thu, 31 Jul 2014 06:25:33 +0000 (06:25 +0000)]
[FastISel][AArch64] Add sqrt intrinsic support.

Fixes <rdar://problem/17867067>.

llvm-svn: 214388

10 years agoWhen doing an exhaustive search for the kernel in memory, also look
Jason Molenda [Thu, 31 Jul 2014 06:07:04 +0000 (06:07 +0000)]
When doing an exhaustive search for the kernel in memory, also look
at 16k offsets.
<rdar://problem/17861781>

llvm-svn: 214387

10 years agoSema: Disallow taking the address of a bitfield coming from preincrement
David Majnemer [Thu, 31 Jul 2014 04:52:13 +0000 (04:52 +0000)]
Sema: Disallow taking the address of a bitfield coming from preincrement

Clang forgot that '++s.m' was a bitfield l-value and permit it's address
to be taken; this would crash at CodeGen-time.

Instead, propagate the object-kind when we see the prefix
increment/decrement.

This fixes PR20496.

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

llvm-svn: 214386

10 years agoInstCombine: Correctly propagate NSW/NUW for x-(-A) -> x+A
David Majnemer [Thu, 31 Jul 2014 04:49:29 +0000 (04:49 +0000)]
InstCombine: Correctly propagate NSW/NUW for x-(-A) -> x+A

We can only propagate the nsw bits if both subtraction instructions are
marked with the appropriate bit.

N.B.  We only propagate the nsw bit in InstCombine because the nuw case
is already handled in InstSimplify.

This fixes PR20189.

llvm-svn: 214385

10 years agoInstSimplify: Simplify (X - (0 - Y)) if the second sub is NUW
David Majnemer [Thu, 31 Jul 2014 04:49:18 +0000 (04:49 +0000)]
InstSimplify: Simplify (X - (0 - Y)) if the second sub is NUW

If the NUW bit is set for 0 - Y, we know that all values for Y other
than 0 would produce a poison value.  This allows us to replace (0 - Y)
with 0 in the expression (X - (0 - Y)) which will ultimately leave us
with X.

This partially fixes PR20189.

llvm-svn: 214384

10 years agoFix some grammatical errors.
Richard Smith [Thu, 31 Jul 2014 04:25:36 +0000 (04:25 +0000)]
Fix some grammatical errors.

llvm-svn: 214383

10 years ago[FastISel][AArch64] Update and enable patchpoint and stackmap intrinsic tests for...
Juergen Ributzka [Thu, 31 Jul 2014 04:10:43 +0000 (04:10 +0000)]
[FastISel][AArch64] Update and enable patchpoint and stackmap intrinsic tests for FastISel.

This commit updates the existing SelectionDAG tests for the stackmap and patchpoint
intrinsics and enables FastISel testing. It also splits up the tests into separate
files, due to different codegen between SelectionDAG and FastISel.

llvm-svn: 214382

10 years ago[FastISel][AArch64] Add MachO large code model support for function calls.
Juergen Ributzka [Thu, 31 Jul 2014 04:10:40 +0000 (04:10 +0000)]
[FastISel][AArch64] Add MachO large code model support for function calls.

Currently the large code model for MachO uses the GOT to make function calls.
Emit the required adrp and ldr instructions to load the address from the GOT.

Related to <rdar://problem/17733076>.

llvm-svn: 214381

10 years ago[AVX512] Add unaligned FP load intrinsics
Adam Nemet [Thu, 31 Jul 2014 04:00:39 +0000 (04:00 +0000)]
[AVX512] Add unaligned FP load intrinsics

Part of <rdar://problem/17688758>

llvm-svn: 214380

10 years agoA std::unique_ptr case I missed in the previous patch.
Rafael Espindola [Thu, 31 Jul 2014 03:36:00 +0000 (03:36 +0000)]
A std::unique_ptr case I missed in the previous patch.

llvm-svn: 214379

10 years agoUpdate for llvm api change.
Rafael Espindola [Thu, 31 Jul 2014 03:17:04 +0000 (03:17 +0000)]
Update for llvm api change.

llvm-svn: 214378

10 years agoUse std::unique_ptr to make the ownership explicit.
Rafael Espindola [Thu, 31 Jul 2014 03:12:45 +0000 (03:12 +0000)]
Use std::unique_ptr to make the ownership explicit.

llvm-svn: 214377

10 years agoRevert r214333, "Add a state variable to the loop hint attribute."
NAKAMURA Takumi [Thu, 31 Jul 2014 01:52:33 +0000 (01:52 +0000)]
Revert r214333, "Add a state variable to the loop hint attribute."

It brought undefined behavior.

llvm-svn: 214376

10 years agoDon't fail tablegen immediately after failing to set a value.
Pete Cooper [Thu, 31 Jul 2014 01:44:00 +0000 (01:44 +0000)]
Don't fail tablegen immediately after failing to set a value.

Instead allow the variable to be declared, but don't attach an initializer. This allows more than a single error to be emitted before we exit.

Test case to follow soon in another patch.

llvm-svn: 214375

10 years agoAdd a better error message when failing to assign one tablegen value to another
Pete Cooper [Thu, 31 Jul 2014 01:43:57 +0000 (01:43 +0000)]
Add a better error message when failing to assign one tablegen value to another

This is currently for assigning from one bit init to another.  It can easily be extended to other types.

Test to follow soon in another patch.

llvm-svn: 214374

10 years agoFix bit initializer which was one bit too long, but worked so long as we silently...
Pete Cooper [Thu, 31 Jul 2014 01:43:54 +0000 (01:43 +0000)]
Fix bit initializer which was one bit too long, but worked so long as we silently dropped the leading 0

llvm-svn: 214373

10 years agoFix bit initializer which was one bit too long, but worked so long as we silently...
Pete Cooper [Thu, 31 Jul 2014 01:43:51 +0000 (01:43 +0000)]
Fix bit initializer which was one bit too long, but worked so long as we silently dropped the leading 0

llvm-svn: 214372

10 years agoFix numeric_limits<XXX>::is_modulo for signed arithmetic types. We were reporting...
Marshall Clow [Thu, 31 Jul 2014 01:18:05 +0000 (01:18 +0000)]
Fix numeric_limits<XXX>::is_modulo for signed arithmetic types. We were reporting true, for all arithmetic types, which is incorrect. Fix the tests which were wrong, too. This fixes PR#20158.

llvm-svn: 214371

10 years agoDelete dead code.
Rafael Espindola [Thu, 31 Jul 2014 01:14:09 +0000 (01:14 +0000)]
Delete dead code.

llvm-svn: 214370

10 years agoRename this test so that it actually runs, and fix it so that it passes.
Richard Smith [Thu, 31 Jul 2014 00:22:56 +0000 (00:22 +0000)]
Rename this test so that it actually runs, and fix it so that it passes.

llvm-svn: 214369

10 years agoUseListOrder: Don't give constant IDs to GlobalValues
Duncan P. N. Exon Smith [Thu, 31 Jul 2014 00:13:28 +0000 (00:13 +0000)]
UseListOrder: Don't give constant IDs to GlobalValues

Since initializers of GlobalValues are being assigned IDs before
GlobalValues themselves, explicitly exclude GlobalValues from the
constant pool.  Added targeted test in `test/Bitcode/use-list-order.ll`
and added two more RUN lines in `test/Assembly`.

This is part of PR5680.

llvm-svn: 214368

10 years ago[FastISel] Fix the patchpoint intrinsic lowering in FastISel for large target addresses.
Juergen Ributzka [Thu, 31 Jul 2014 00:11:16 +0000 (00:11 +0000)]
[FastISel] Fix the patchpoint intrinsic lowering in FastISel for large target addresses.

This fixes a mistake where I accidentially dropped the upper 32bit of a
64bit pointer during FastISel lowering of the patchpoint intrinsic.

llvm-svn: 214367

10 years ago[FastISel][AArch64 and X86] Don't emit stores for UNDEF arguments during function...
Juergen Ributzka [Thu, 31 Jul 2014 00:11:11 +0000 (00:11 +0000)]
[FastISel][AArch64 and X86] Don't emit stores for UNDEF arguments during function call lowering.

UNDEF arguments are not ment to be touched - especially for the webkit_js
calling convention. This fix reproduces the already existing behavior of
SelectionDAG in FastISel.

llvm-svn: 214366

10 years agoverify-uselistorder: Add RUN lines to cases in test/Assembly
Duncan P. N. Exon Smith [Thu, 31 Jul 2014 00:10:27 +0000 (00:10 +0000)]
verify-uselistorder: Add RUN lines to cases in test/Assembly

Add RUN line for `verify-uselistorder` to every test in `test/Assembly`,
unless it's a negative check (assembler rejects it) or verification
fails.

There are three files that verification fails on (so I've left out the
RUN lines):

  - 2002-08-22-DominanceProblem.ll
  - ConstantExprFold.ll
  - ConstantExprFoldCast.ll

This is part of PR5680.

llvm-svn: 214365

10 years agoX86 asm parser: Avoid duplicating the list of aliased instructions
Reid Kleckner [Thu, 31 Jul 2014 00:07:33 +0000 (00:07 +0000)]
X86 asm parser: Avoid duplicating the list of aliased instructions

No functional change.

llvm-svn: 214364

10 years agoAdd mtpid/mfpid for BookE.
Joerg Sonnenberger [Wed, 30 Jul 2014 23:59:11 +0000 (23:59 +0000)]
Add mtpid/mfpid for BookE.

llvm-svn: 214363

10 years agoUpdating a comment related to the implementation of -Woverloaded-virtual, and adding...
Aaron Ballman [Wed, 30 Jul 2014 23:50:53 +0000 (23:50 +0000)]
Updating a comment related to the implementation of -Woverloaded-virtual, and adding a FIXME to a test case. (Drive-by removal of trailing whitespace in the test case as well.)

No functional changes.

llvm-svn: 214362

10 years agoAttempt at fixing the windows dll build.
Rafael Espindola [Wed, 30 Jul 2014 23:39:30 +0000 (23:39 +0000)]
Attempt at fixing the windows dll build.

It looks like only direct (i.e., explicitly listed) dependencies are
scanned.

llvm-svn: 214361

10 years agollvm-profdata: Add a test for mismatched numbers of counters
Justin Bogner [Wed, 30 Jul 2014 23:36:06 +0000 (23:36 +0000)]
llvm-profdata: Add a test for mismatched numbers of counters

llvm-svn: 214360

10 years agoUpdate for llvm change.
Rafael Espindola [Wed, 30 Jul 2014 23:17:15 +0000 (23:17 +0000)]
Update for llvm change.

llvm-svn: 214358

10 years agollvm-profdata: Use consistent file suffixes in tests
Justin Bogner [Wed, 30 Jul 2014 23:02:01 +0000 (23:02 +0000)]
llvm-profdata: Use consistent file suffixes in tests

In some places we've been using different suffixes for the different
file formats involved in instrprof, but in others we've just
ambiguously used .profdata. Update the test files to indicate the
types of file more obviously.

No functional change.

llvm-svn: 214357

10 years agoUpdate for llvm change.
Rafael Espindola [Wed, 30 Jul 2014 22:52:16 +0000 (22:52 +0000)]
Update for llvm change.

llvm-svn: 214356

10 years agoUse "weak alias" instead of "alias weak"
Rafael Espindola [Wed, 30 Jul 2014 22:51:54 +0000 (22:51 +0000)]
Use "weak alias" instead of "alias weak"

Before this patch we had

@a = weak global ...
but
@b = alias weak ...

The patch changes aliases to look more like global variables.

Looking at some really old code suggests that the reason was that the old
bison based parser had a reduction for alias linkages and another one for
global variable linkages. Putting the alias first avoided the reduce/reduce
conflict.

The days of the old .ll parser are long gone. The new one parses just "linkage"
and a later check is responsible for deciding if a linkage is valid in a
given context.

llvm-svn: 214355

10 years agoRefactor TLBIVAX and add tlbsx.
Joerg Sonnenberger [Wed, 30 Jul 2014 22:51:15 +0000 (22:51 +0000)]
Refactor TLBIVAX and add tlbsx.

llvm-svn: 214354

10 years agoX86 asm parser: Use a loop to disambiguate suffixes instead of copy paste
Reid Kleckner [Wed, 30 Jul 2014 22:23:11 +0000 (22:23 +0000)]
X86 asm parser: Use a loop to disambiguate suffixes instead of copy paste

This works towards making the Intel syntax asm matcher use a completely
different disambiguation strategy.

No functional change.

llvm-svn: 214352

10 years agoDisable test on Windows. script print deadlocks on Windows.
Zachary Turner [Wed, 30 Jul 2014 22:08:17 +0000 (22:08 +0000)]
Disable test on Windows.  script print deadlocks on Windows.

llvm-svn: 214351

10 years ago[FastISel][AArch64] Add select folding support for the XALU intrinsics.
Juergen Ributzka [Wed, 30 Jul 2014 22:04:37 +0000 (22:04 +0000)]
[FastISel][AArch64] Add select folding support for the XALU intrinsics.

This improves the code generation for the XALU intrinsics when the
condition is feeding a select instruction.

This also updates and enables the XALU unit tests for FastISel.

This fixes <rdar://problem/17831117>.

llvm-svn: 214350

10 years ago[FastISel][AArch64] Add branch folding support for the XALU intrinsics.
Juergen Ributzka [Wed, 30 Jul 2014 22:04:34 +0000 (22:04 +0000)]
[FastISel][AArch64] Add branch folding support for the XALU intrinsics.

This improves the code generation for the XALU intrinsics when the
condition is feeding a branch instruction.

This is related to <rdar://problem/17831117>.

llvm-svn: 214349

10 years ago[FastISel][AArch64] Add {s|u}{add|sub|mul}.with.overflow intrinsic support.
Juergen Ributzka [Wed, 30 Jul 2014 22:04:31 +0000 (22:04 +0000)]
[FastISel][AArch64] Add {s|u}{add|sub|mul}.with.overflow intrinsic support.

This commit adds support for the {s|u}{add|sub|mul}.with.overflow intrinsics.
The unit tests for FastISel will be enabled in a later commit, once there is
also branch and select folding support.

This is related to <rdar://problem/17831117>.

llvm-svn: 214348

10 years ago[FastISel] Move the helper function isCommutativeIntrinsic into FastISel base class.
Juergen Ributzka [Wed, 30 Jul 2014 22:04:28 +0000 (22:04 +0000)]
[FastISel] Move the helper function isCommutativeIntrinsic into FastISel base class.

Move the helper function isCommutativeIntrinsic into the FastISel base class,
so it can be used by more than just one backend.

llvm-svn: 214347

10 years ago[FastISel][AArch64] Create helper functions to create the various multiplies on AArch64.
Juergen Ributzka [Wed, 30 Jul 2014 22:04:25 +0000 (22:04 +0000)]
[FastISel][AArch64] Create helper functions to create the various multiplies on AArch64.

llvm-svn: 214346

10 years ago[FastISel][AArch64] Add support for shift-immediate.
Juergen Ributzka [Wed, 30 Jul 2014 22:04:22 +0000 (22:04 +0000)]
[FastISel][AArch64] Add support for shift-immediate.

Currently the shift-immediate versions are not supported by tblgen and
hopefully this can be later removed, once the required support has been
added to tblgen.

llvm-svn: 214345

10 years ago[Sanitizer] Hoist the code parsing suppressions file into sanitizer_common.
Alexey Samsonov [Wed, 30 Jul 2014 21:53:30 +0000 (21:53 +0000)]
[Sanitizer] Hoist the code parsing suppressions file into sanitizer_common.

Remove corresponding bits from LSan and TSan runtimes. No functionality change.

llvm-svn: 214344

10 years ago[Sanitizer] Make "suppressions" and "print_suppressions" common runtime flags.
Alexey Samsonov [Wed, 30 Jul 2014 21:33:04 +0000 (21:33 +0000)]
[Sanitizer] Make "suppressions" and "print_suppressions" common runtime flags.

No functionality change.

llvm-svn: 214343

10 years agoInstCombine: Simplify (A ^ B) or/and (A ^ B ^ C)
David Majnemer [Wed, 30 Jul 2014 21:26:37 +0000 (21:26 +0000)]
InstCombine: Simplify (A ^ B) or/and (A ^ B ^ C)

While we can already transform A | (A ^ B) into A | B, things get bad
once we have (A ^ B) | (A ^ B ^ Cst) because reassociation will morph
this into (A ^ B) | ((A ^ Cst) ^ B).  Our existing patterns fail once
this happens.

To fix this, we add a new pattern which looks through the tree of xor
binary operators to see that, in fact, there exists a redundant xor
operation.

What follows bellow is a correctness proof of the transform using CVC3.

$ cat t.cvc
A, B, C : BITVECTOR(64);

QUERY BVXOR(A, B) | BVXOR(BVXOR(B, C), A) = BVXOR(A, B) | C;
QUERY BVXOR(BVXOR(A, C), B) | BVXOR(A, B) = BVXOR(A, B) | C;

QUERY BVXOR(A, B) & BVXOR(BVXOR(B, C), A) = BVXOR(A, B) & ~C;
QUERY BVXOR(BVXOR(A, C), B) & BVXOR(A, B) = BVXOR(A, B) & ~C;

$ cvc3 < t.cvc
Valid.
Valid.
Valid.
Valid.

llvm-svn: 214342

10 years agoWhen resetting the number of children on a ValueObject, also clear the existing child...
Enrico Granata [Wed, 30 Jul 2014 21:23:55 +0000 (21:23 +0000)]
When resetting the number of children on a ValueObject, also clear the existing children. This avoids issues where dynamic types change, but children stay the same

llvm-svn: 214341

10 years agoRevert a part of r214335 that I didn't mean to commit
Enrico Granata [Wed, 30 Jul 2014 21:10:03 +0000 (21:10 +0000)]
Revert a part of r214335 that I didn't mean to commit

llvm-svn: 214340

10 years agoAdd rfdi and rfmci from the e500/e500mc ISA.
Joerg Sonnenberger [Wed, 30 Jul 2014 21:09:03 +0000 (21:09 +0000)]
Add rfdi and rfmci from the e500/e500mc ISA.

llvm-svn: 214339