platform/upstream/llvm.git
9 years agoCheck bit widths before trying to get a type.
Filipe Cabecinhas [Fri, 30 Jan 2015 18:13:50 +0000 (18:13 +0000)]
Check bit widths before trying to get a type.

Added a test case for it.
Also added run lines for the test case in r227566.

Bugs found with afl-fuzz

llvm-svn: 227589

9 years ago[Hexagon] Adding a number of vector load variants and organizing tests.
Colin LeMahieu [Fri, 30 Jan 2015 18:09:44 +0000 (18:09 +0000)]
[Hexagon] Adding a number of vector load variants and organizing tests.

llvm-svn: 227588

9 years agoReally really don't build llvm-pdbdump on MSVC < 2013.
Zachary Turner [Fri, 30 Jan 2015 18:08:05 +0000 (18:08 +0000)]
Really really don't build llvm-pdbdump on MSVC < 2013.

I thought it was enough to just not add the tool subdirectory,
but apparently I need to explicitly mark it ignore.

llvm-svn: 227587

9 years agoMove DebugInfo to DebugInfo/DWARF.
Zachary Turner [Fri, 30 Jan 2015 18:07:45 +0000 (18:07 +0000)]
Move DebugInfo to DebugInfo/DWARF.

In preparation for adding PDB support to LLVM, this moves the
DWARF parsing code to its own subdirectory under DebugInfo, and
renames LLVMDebugInfo to LLVMDebugInfoDWARF.

This is purely a mechanical / build system change.

Differential Revision: http://reviews.llvm.org/D7269
Reviewed by: Eric Christopher

llvm-svn: 227586

9 years agoImplement log10
Jan Vesely [Fri, 30 Jan 2015 18:00:34 +0000 (18:00 +0000)]
Implement log10

v2: Use constant and multiplication instead of division
v3: Use hex constants

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 227585

9 years agoARM: correct handling of .fpu directive
Saleem Abdulrasool [Fri, 30 Jan 2015 17:58:25 +0000 (17:58 +0000)]
ARM: correct handling of .fpu directive

The FPU directive permits the user to switch the target FPU, enabling
instructions that would be otherwise unavailable.  However, when configuring the
new subtarget features, we would not enable the implied functions for newer
FPUs.  This would result in invalid rejection of valid input.  Ensure that we
inherit the implied FPU functionality when enabling newer versions of the FPU.
Fortunately, these are mostly hierarchical, unlike the CPUs.

Addresses PR22395.

llvm-svn: 227584

9 years ago[mips] Pass ABI name via -target-abi instead of target-features
Daniel Sanders [Fri, 30 Jan 2015 17:35:23 +0000 (17:35 +0000)]
[mips] Pass ABI name via -target-abi instead of target-features

Patch by Vladimir Medic

Reviewers: echristo, atanasyan, dsanders

Reviewed By: atanasyan, dsanders

Subscribers: llvm-commits, echristo, atanasyan

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

llvm-svn: 227583

9 years agotidy up; NFC
Sanjay Patel [Fri, 30 Jan 2015 16:58:58 +0000 (16:58 +0000)]
tidy up; NFC

llvm-svn: 227582

9 years agoFollow-up to r217302 and r227555: Don't crash on inline ~A::A() if A is an int.
Nico Weber [Fri, 30 Jan 2015 16:53:11 +0000 (16:53 +0000)]
Follow-up to r217302 and r227555: Don't crash on inline ~A::A() if A is an int.

Even with r227555, this still crashed:

  struct S {
    int A;
    ~A::A() {}
  };

That's because ParseOptionalCXXScopeSpecifier()'s call to
ActOnCXXNestedNameSpecifier() doesn't mark the scope spec as invalid if sema
thought it's a good idea to fixit-correct "::" to ":".  For the diagnostic
improvement done in r217302, we never want :: to be interpreted as :, so fix
this by setting ColonSacred to false temporarily.

Found by SLi's bot.

llvm-svn: 227581

9 years agoAdapt test for tid format on non-Darwin platforms
Ed Maste [Fri, 30 Jan 2015 16:45:24 +0000 (16:45 +0000)]
Adapt test for tid format on non-Darwin platforms

llvm-svn: 227580

9 years agoRestrict SigtrampUnwind test to Darwin only
Ed Maste [Fri, 30 Jan 2015 16:33:02 +0000 (16:33 +0000)]
Restrict SigtrampUnwind test to Darwin only

It needs OS-specific knowledge and has not yet been adapted to other
systems.

llvm-svn: 227579

9 years agoSkip Objective-C test on non-Darwin platforms
Ed Maste [Fri, 30 Jan 2015 16:31:07 +0000 (16:31 +0000)]
Skip Objective-C test on non-Darwin platforms

llvm-svn: 227578

9 years agoCode cleanup
Nathan Sidwell [Fri, 30 Jan 2015 14:21:35 +0000 (14:21 +0000)]
Code cleanup
Parser::ParseLexedMethodDeclaration: Use local var for Param
Sema::MergeCXXFunctionDecls: Use hasInheritedDefaultArg

llvm-svn: 227577

9 years ago[PM] Sink the population of the pass manager with target-specific
Chandler Carruth [Fri, 30 Jan 2015 13:33:42 +0000 (13:33 +0000)]
[PM] Sink the population of the pass manager with target-specific
analyses back into the LTO code generator.

The pass manager builder (and the transforms library in general)
shouldn't be referencing the target machine at all.

This makes the LTO population work like the others -- the data layout
and target transform info need to be pre-populated.

llvm-svn: 227576

9 years agoFix a warning introduced by r227557 due to a default label in a fully
Chandler Carruth [Fri, 30 Jan 2015 13:30:43 +0000 (13:30 +0000)]
Fix a warning introduced by r227557 due to a default label in a fully
covering switch.

llvm-svn: 227575

9 years ago[Cygming] Seek also chkstk_ms, or JIT fails with DLL builds. It is fixup for r227519.
NAKAMURA Takumi [Fri, 30 Jan 2015 13:01:19 +0000 (13:01 +0000)]
[Cygming] Seek also chkstk_ms, or JIT fails with DLL builds. It is fixup for r227519.

llvm-svn: 227574

9 years agoRegenerate configure since r227090.
NAKAMURA Takumi [Fri, 30 Jan 2015 13:01:00 +0000 (13:01 +0000)]
Regenerate configure since r227090.

llvm-svn: 227573

9 years ago[Sanitizers] Intercept gethost functions on FreeBSD
Viktor Kutuzov [Fri, 30 Jan 2015 12:58:37 +0000 (12:58 +0000)]
[Sanitizers] Intercept gethost functions on FreeBSD
Committed unreviewed with permission.

llvm-svn: 227572

9 years ago[Msan] Fix the shmctl unit tests to pass on FreeBSD
Viktor Kutuzov [Fri, 30 Jan 2015 12:55:40 +0000 (12:55 +0000)]
[Msan] Fix the shmctl unit tests to pass on FreeBSD
Differential Revision: http://reviews.llvm.org/D7253

llvm-svn: 227571

9 years ago[Sanitizers] Introduce GET_LINK_MAP_BY_DLOPEN_HANDLE() macro
Viktor Kutuzov [Fri, 30 Jan 2015 12:43:52 +0000 (12:43 +0000)]
[Sanitizers] Introduce GET_LINK_MAP_BY_DLOPEN_HANDLE() macro
Differential Revision: http://reviews.llvm.org/D7233

llvm-svn: 227570

9 years agoCorrect a typo in a comment
Tobias Grosser [Fri, 30 Jan 2015 12:33:43 +0000 (12:33 +0000)]
Correct a typo in a comment

llvm-svn: 227569

9 years ago[mips] Manually replace JAL pseudo-instructions with their JALR equivalent, instead...
Toma Tabacu [Fri, 30 Jan 2015 11:18:50 +0000 (11:18 +0000)]
[mips] Manually replace JAL pseudo-instructions with their JALR equivalent, instead of using InstAlias.

Summary:
This is needed by the .cprestore assembler directive.

This directive needs to be able to insert an LW instruction after every JALR replacement of a JAL pseudo-instruction
(and never after a JALR which has NOT been a result of a pseudo-instruction replacement).

The problem with using InstAlias for these is that after it replaces the pseudo-instruction, we can't find out if the resulting JALR instruction
was generated by an InstAlias or not, so we don't know whether or not to insert our LW instruction.

By replacing it manually, we know when the pseudo-instruction replacement happens and we can insert the LW instruction correctly.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: emaste, llvm-commits

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

llvm-svn: 227568

9 years agoRemove unneeded code
Filipe Cabecinhas [Fri, 30 Jan 2015 11:17:56 +0000 (11:17 +0000)]
Remove unneeded code

We don't really care about enabling RTTI with -fexceptions, only with
-fcxx-exceptions.

llvm-svn: 227567

9 years ago[bitcode reader] Fix an assert on invalid type tables
Filipe Cabecinhas [Fri, 30 Jan 2015 10:57:58 +0000 (10:57 +0000)]
[bitcode reader] Fix an assert on invalid type tables

Bug found with afl-fuzz

llvm-svn: 227566

9 years agoFix OpenCL 1.2 double as an optional core feature behaviour
Fraser Cormack [Fri, 30 Jan 2015 10:51:46 +0000 (10:51 +0000)]
Fix OpenCL 1.2 double as an optional core feature behaviour

In OpenCL 1.2, using double no longer requires using the pragma cl_khr_fp64,
instead a kernel is allowed to use double, but must first have queried
clGetDeviceInfo's CL_DEVICE_DOUBLE_FP_CONFIG.

Page 197, section 6.1.1 of the OpenCL 1.2 specification has a footnote 23
describing this behaviour.

I've also added test cases such that the pragma must be used if targeting
OpenCL 1.0 or 1.1, but is ignored in 1.2 and 2.0.

Patch by Neil Henning!

Reviewers: Pekka Jääskeläinen

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

llvm-svn: 227565

9 years agoIntroduce llvm/test/LTO/X86. LTO tests may be assumed as target-specific.
NAKAMURA Takumi [Fri, 30 Jan 2015 10:09:26 +0000 (10:09 +0000)]
Introduce llvm/test/LTO/X86. LTO tests may be assumed as target-specific.

llvm-svn: 227564

9 years agoIntroduce llvm/test/LTO/ARM for arm-specific LTO test(s).
NAKAMURA Takumi [Fri, 30 Jan 2015 09:53:37 +0000 (09:53 +0000)]
Introduce llvm/test/LTO/ARM for arm-specific LTO test(s).

llvm-svn: 227563

9 years agoChange a very hot piece of code in TableGen's register unit computations to use bit...
Owen Anderson [Fri, 30 Jan 2015 09:05:49 +0000 (09:05 +0000)]
Change a very hot piece of code in TableGen's register unit computations to use bit vectors rather than arrays.

For target descriptions with very large and very dense register files, TableGen
can take an extremely long time to run.  This change makes a dent in that (~15%
in my measurements) by accelerating the single hottest operation with better data
structures.

I believe there's still a lot of room to make this even faster with more global
changes that require replacing some of the existing datastructures in this area
with bit vectors, but that's a more involved change and I wanted to get this
simpler improvement in first.

llvm-svn: 227562

9 years agoMove the target specific test case arbitrary-induction-step.ll to test/Transforms...
Hao Liu [Fri, 30 Jan 2015 07:33:31 +0000 (07:33 +0000)]
Move the target specific test case arbitrary-induction-step.ll to test/Transforms/LoopVectorize/AArch64 folder.

llvm-svn: 227561

9 years ago[Sanitizer] Make BlockingMutex really linker initialized.
Yury Gribov [Fri, 30 Jan 2015 06:20:43 +0000 (06:20 +0000)]
[Sanitizer] Make BlockingMutex really linker initialized.

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

llvm-svn: 227560

9 years agoReplace code dup with a macro.
Yury Gribov [Fri, 30 Jan 2015 06:18:46 +0000 (06:18 +0000)]
Replace code dup with a macro.
Differential Revision: http://reviews.llvm.org/D7172

llvm-svn: 227559

9 years ago[Core] Fix "variable ‘comp’ has function type" error shown by gcc
Simon Atanasyan [Fri, 30 Jan 2015 05:42:57 +0000 (05:42 +0000)]
[Core] Fix "variable ‘comp’ has function type" error shown by gcc

llvm-svn: 227558

9 years ago[LoopVectorize] Induction variables: support arbitrary constant step.
Hao Liu [Fri, 30 Jan 2015 05:02:21 +0000 (05:02 +0000)]
[LoopVectorize] Induction variables: support arbitrary constant step.
Previously, only -1 and +1 step values are supported for induction variables. This patch extends LV to support
arbitrary constant steps.
Initial patch by Alexey Volkov. Some bug fixes are added in the following version.

Differential Revision: http://reviews.llvm.org/D6051 and http://reviews.llvm.org/D7193

llvm-svn: 227557

9 years agoSema: Disable template instantiation once a fatal error is raised
David Majnemer [Fri, 30 Jan 2015 05:01:23 +0000 (05:01 +0000)]
Sema: Disable template instantiation once a fatal error is raised

Fatal errors disable all further diagnostics.  Continuing to permit
template instantiation does nothing but make it take longer for clang to
finish with the TU.

Instead, halt all further instantiation.

Fixed in PR22396.

llvm-svn: 227556

9 years agoFollow-up to r217302: Don't crash on ~A::A() if A is undeclared.
Nico Weber [Fri, 30 Jan 2015 04:05:15 +0000 (04:05 +0000)]
Follow-up to r217302: Don't crash on ~A::A() if A is undeclared.

llvm-svn: 227555

9 years agoTypo fixo.
Nico Weber [Fri, 30 Jan 2015 03:47:03 +0000 (03:47 +0000)]
Typo fixo.

llvm-svn: 227554

9 years agoWrap to 80 cols by removing trailing whitespace. No behavior change.
Nico Weber [Fri, 30 Jan 2015 02:35:21 +0000 (02:35 +0000)]
Wrap to 80 cols by removing trailing whitespace. No behavior change.

llvm-svn: 227553

9 years agoSmall tweak to the name of kernel binaries that we look
Jason Molenda [Fri, 30 Jan 2015 02:28:06 +0000 (02:28 +0000)]
Small tweak to the name of kernel binaries that we look
for; match files starting with "mach", not "mach." so
the old common name mach_kernel will still be matched.

llvm-svn: 227552

9 years agoRemove useless DEBUG_WITH_TYPE.
Rui Ueyama [Fri, 30 Jan 2015 02:15:57 +0000 (02:15 +0000)]
Remove useless DEBUG_WITH_TYPE.

We have a DEBUG_TYPE macro for the same debug string already
at the beginning of the file.

llvm-svn: 227551

9 years ago[AArch64]Fix PR21675, a bug about lowering llvm.ctpop.i32. We should noot use "DAG...
Hao Liu [Fri, 30 Jan 2015 02:13:53 +0000 (02:13 +0000)]
[AArch64]Fix PR21675, a bug about lowering llvm.ctpop.i32. We should noot use "DAG.getUNDEF(MVT::v8i8)" to get all zero vector.
Patch by Wei-cheng Wang.

llvm-svn: 227550

9 years agoReplace SimpleFileWrapper with a function.
Rui Ueyama [Fri, 30 Jan 2015 02:11:59 +0000 (02:11 +0000)]
Replace SimpleFileWrapper with a function.

SimpleFileWrapper was a class to wrap an existing (possibly non-mutable)
file as a mutable file. We used instances of the class in RoundTrip*
passes, because the passes convert mutable files to non-mutable files,
and we needed to convert them back to mutable.

That feature can be implemented without defining a new class. Generally
speaking, if we can implement a feature without defining a class and
using only public interface of exsiting classes, that's preferred way
to do that. And this is the case.

llvm-svn: 227549

9 years agoUse the cached subtarget in PPCFrameLowering.
Eric Christopher [Fri, 30 Jan 2015 02:11:26 +0000 (02:11 +0000)]
Use the cached subtarget in PPCFrameLowering.

llvm-svn: 227548

9 years agoMigrate some of PPC away from the use of bare getSubtarget/getSubtargetImpl.
Eric Christopher [Fri, 30 Jan 2015 02:11:24 +0000 (02:11 +0000)]
Migrate some of PPC away from the use of bare getSubtarget/getSubtargetImpl.

llvm-svn: 227547

9 years agoMigrage PPCRegisterInfo to use the cached subtarget.
Eric Christopher [Fri, 30 Jan 2015 02:11:21 +0000 (02:11 +0000)]
Migrage PPCRegisterInfo to use the cached subtarget.

llvm-svn: 227546

9 years agoTeach AST printing to not print whitespace inside {} and () for initialization,
Richard Smith [Fri, 30 Jan 2015 02:04:26 +0000 (02:04 +0000)]
Teach AST printing to not print whitespace inside {} and () for initialization,
to match LLVM's preferred style.

llvm-svn: 227545

9 years agoFix PR22386. The inliner moves static allocas to the entry basic block
Adrian Prantl [Fri, 30 Jan 2015 01:55:25 +0000 (01:55 +0000)]
Fix PR22386. The inliner moves static allocas to the entry basic block
so we need to move the dbg.declare intrinsics that describe them, too.

llvm-svn: 227544

9 years agoExplicitly write type instead of auto.
Rui Ueyama [Fri, 30 Jan 2015 01:52:23 +0000 (01:52 +0000)]
Explicitly write type instead of auto.

Now it is clear that std::move() is meaningless here.

llvm-svn: 227543

9 years agoMigrate a bare getSubtarget call to query the MachineFunction
Eric Christopher [Fri, 30 Jan 2015 01:50:09 +0000 (01:50 +0000)]
Migrate a bare getSubtarget call to query the MachineFunction
for the target dependent one.

llvm-svn: 227542

9 years agoMigrate NVPTXISelLowering to take the subtarget that it's dependent
Eric Christopher [Fri, 30 Jan 2015 01:50:07 +0000 (01:50 +0000)]
Migrate NVPTXISelLowering to take the subtarget that it's dependent
upon as an argument and store/use that in the entire function.

llvm-svn: 227541

9 years agoWeaken an assertion that isn't true for invalid input.
Nico Weber [Fri, 30 Jan 2015 01:48:49 +0000 (01:48 +0000)]
Weaken an assertion that isn't true for invalid input.

llvm-svn: 227540

9 years agoRemove unused argument.
Eric Christopher [Fri, 30 Jan 2015 01:41:01 +0000 (01:41 +0000)]
Remove unused argument.

llvm-svn: 227539

9 years agoMigrate NVPTXISelDAGToDAG's getSubtarget to a runOnMachineFunction
Eric Christopher [Fri, 30 Jan 2015 01:40:59 +0000 (01:40 +0000)]
Migrate NVPTXISelDAGToDAG's getSubtarget to a runOnMachineFunction
version. Update NVPTXInstrInfo accordingly.

llvm-svn: 227538

9 years agoRemove unused parameter.
Rui Ueyama [Fri, 30 Jan 2015 01:35:38 +0000 (01:35 +0000)]
Remove unused parameter.

llvm-svn: 227536

9 years agoRemove calls to bare getSubtarget and clean up the functions
Eric Christopher [Fri, 30 Jan 2015 01:30:01 +0000 (01:30 +0000)]
Remove calls to bare getSubtarget and clean up the functions
accordingly.

llvm-svn: 227535

9 years agoRemove remaining code for PPC ELF target.
Rui Ueyama [Fri, 30 Jan 2015 01:18:43 +0000 (01:18 +0000)]
Remove remaining code for PPC ELF target.

llvm-svn: 227534

9 years ago[LTO] Scan all per-function subtargets when collecting runtime library names.
Akira Hatanaka [Fri, 30 Jan 2015 01:16:24 +0000 (01:16 +0000)]
[LTO] Scan all per-function subtargets when collecting runtime library names.

accumulateAndSortLibcalls in LTOCodeGenerator.cpp collects names of runtime
library functions which are used to identify user-defined functions that should
be protected. Previously, this function would only scan the TargetLowering
object belonging to the "main" subtarget for the library function names. This
commit changes it to scan all per-function subtargets.

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

llvm-svn: 227533

9 years ago[llvm-lto] Add a line for setting LTOCodeGenerator's CPU string from command
Akira Hatanaka [Fri, 30 Jan 2015 01:14:28 +0000 (01:14 +0000)]
[llvm-lto] Add a line for setting LTOCodeGenerator's CPU string from command
line.

This is needed for a test case I plan to commit later.

llvm-svn: 227532

9 years agoRemove a few getSubtarget calls in AArch64 pass manager initialization.
Eric Christopher [Fri, 30 Jan 2015 01:10:26 +0000 (01:10 +0000)]
Remove a few getSubtarget calls in AArch64 pass manager initialization.

llvm-svn: 227531

9 years agoClean up some uses of getSubtarget in AArch64.
Eric Christopher [Fri, 30 Jan 2015 01:10:24 +0000 (01:10 +0000)]
Clean up some uses of getSubtarget in AArch64.

llvm-svn: 227530

9 years agoThis only needs TargetInstrInfo, not the specialized one.
Eric Christopher [Fri, 30 Jan 2015 01:10:18 +0000 (01:10 +0000)]
This only needs TargetInstrInfo, not the specialized one.

llvm-svn: 227529

9 years agoclang-cl: Enable -fexceptions but not -fcxx-exceptions by default
Reid Kleckner [Fri, 30 Jan 2015 01:04:16 +0000 (01:04 +0000)]
clang-cl: Enable -fexceptions but not -fcxx-exceptions by default

This enables proper IRgen of SEH constructs.

llvm-svn: 227528

9 years ago[TSan] Fix -Werror=sign-compare warning. NFC.
Alexey Samsonov [Fri, 30 Jan 2015 01:02:12 +0000 (01:02 +0000)]
[TSan] Fix -Werror=sign-compare warning. NFC.

llvm-svn: 227527

9 years agoRemove unused #includes.
Rui Ueyama [Fri, 30 Jan 2015 00:47:33 +0000 (00:47 +0000)]
Remove unused #includes.

llvm-svn: 227526

9 years ago[PM] Remove two very old and dead forward declarations for the prior
Chandler Carruth [Fri, 30 Jan 2015 00:41:44 +0000 (00:41 +0000)]
[PM] Remove two very old and dead forward declarations for the prior
incarnation of target transform info.

This is in preparation for starting to redesign TTI to be amenable to
the new PM world.

llvm-svn: 227525

9 years ago[FIX] Activated a pointer test and removed obsolete comment
Johannes Doerfert [Fri, 30 Jan 2015 00:36:13 +0000 (00:36 +0000)]
[FIX] Activated a pointer test and removed obsolete comment

llvm-svn: 227524

9 years agoUpdating iOS.cmake to work with the latest Xcode and iOS 8 SDK.
Chris Bieneman [Fri, 30 Jan 2015 00:10:47 +0000 (00:10 +0000)]
Updating iOS.cmake to work with the latest Xcode and iOS 8 SDK.

llvm-svn: 227523

9 years agoiOS doesn't have histedit.h available. We should gate use of libedit on whether or...
Chris Bieneman [Fri, 30 Jan 2015 00:10:43 +0000 (00:10 +0000)]
iOS doesn't have histedit.h available. We should gate use of libedit on whether or not this headers exists.

llvm-svn: 227522

9 years agoiOS doesn't have crt_externs.h available, so we fall back to the posix method.
Chris Bieneman [Fri, 30 Jan 2015 00:10:39 +0000 (00:10 +0000)]
iOS doesn't have crt_externs.h available, so we fall back to the posix method.

llvm-svn: 227521

9 years agox86: Remove unused variables not caught by MSVC =P
Reid Kleckner [Fri, 30 Jan 2015 00:05:39 +0000 (00:05 +0000)]
x86: Remove unused variables not caught by MSVC =P

llvm-svn: 227520

9 years agox86: Fix large model calls to __chkstk for dynamic allocas
Reid Kleckner [Thu, 29 Jan 2015 23:58:04 +0000 (23:58 +0000)]
x86: Fix large model calls to __chkstk for dynamic allocas

In the large code model, we now put __chkstk in %r11 before calling it.

Refactor the code so that we only do this once. Simplify things by using
__chkstk_ms instead of __chkstk on cygming. We already use that symbol
in the prolog emission, and it simplifies our logic.

Second half of PR18582.

llvm-svn: 227519

9 years agoAdd some more PS4 driver settings related to rtti and exceptions.
Filipe Cabecinhas [Thu, 29 Jan 2015 23:56:43 +0000 (23:56 +0000)]
Add some more PS4 driver settings related to rtti and exceptions.

Summary:
The PS4 defaults to -fno-rtti, and has to have rtti enabled when enabling
exceptions.

This commit makes clang add the -fno-rtti by default on the PS4, unless
-frtti was passed in.

It also diagnoses misuses for the PS4:
- Exceptions need rtti. Warn and enable rtti if no rtti flag was passed,
  error if -fno-rtti was passed.

I also added a more general warning for when -fno-rtti is the default
(currently it's only on the PS4) and the vptr sanitizer is on.

Fixed a few tests, due to different flag order when passing cc1 arguments.

Reviewers: chandlerc

Subscribers: cfe-commits

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

llvm-svn: 227518

9 years agoRemove unnecessary calls to getSubtarget/getSubtargetImpl from the
Eric Christopher [Thu, 29 Jan 2015 23:46:42 +0000 (23:46 +0000)]
Remove unnecessary calls to getSubtarget/getSubtargetImpl from the
MSP430 backend.

llvm-svn: 227517

9 years agoRemove unused header.
Eric Christopher [Thu, 29 Jan 2015 23:46:39 +0000 (23:46 +0000)]
Remove unused header.

llvm-svn: 227516

9 years agoChange SmallVector param to the more general ArrayRef; NFCI
Sanjay Patel [Thu, 29 Jan 2015 23:35:04 +0000 (23:35 +0000)]
Change SmallVector param to the more general ArrayRef; NFCI

llvm-svn: 227514

9 years agoGet rid of a few calls through the subtarget to get the ABI
Eric Christopher [Thu, 29 Jan 2015 23:27:45 +0000 (23:27 +0000)]
Get rid of a few calls through the subtarget to get the ABI
that's actually sitting on the target machine.

llvm-svn: 227513

9 years agoRemove most of the TargetMachine::getSubtarget/getSubtargetImpl
Eric Christopher [Thu, 29 Jan 2015 23:27:36 +0000 (23:27 +0000)]
Remove most of the TargetMachine::getSubtarget/getSubtargetImpl
calls that don't take a Function argument from Mips. Notable
exceptions: the AsmPrinter and MipsTargetObjectFile. The
latter needs to be fixed, and the former will be fixed when the
general AsmPrinter changes happen.

llvm-svn: 227512

9 years ago[LPM] Remove a PPC64 hack to try to work around a bad interaction
Chandler Carruth [Thu, 29 Jan 2015 23:26:37 +0000 (23:26 +0000)]
[LPM] Remove a PPC64 hack to try to work around a bad interaction
between the linker's TLS optimizations and Clang's TLS code generation.

For now, Clang has been changed to disable linker TLS optimizations
until it (and LLVM more generally) are emitting TLS code sequences
compatible with the old bugs found in the linkers. That's a better fix
to handle bootstrapping on that platform.

llvm-svn: 227511

9 years agoELF: Check StringRef::getAsInteger's return value.
Rui Ueyama [Thu, 29 Jan 2015 23:23:57 +0000 (23:23 +0000)]
ELF: Check StringRef::getAsInteger's return value.

getAsInteger may partially update its result argument. We need to
check function return value to handle errors reliably.

llvm-svn: 227510

9 years ago[compiler-rt] OS X: Update the CMake and Make builds to explicitely use libc++, mmaco...
Kuba Brecka [Thu, 29 Jan 2015 23:19:26 +0000 (23:19 +0000)]
[compiler-rt] OS X: Update the CMake and Make builds to explicitely use libc++, mmacosx-version-min and SDKs

In both CMake and Makefiles, we are inconsistent about the use of libstdc++ vs. libc++, SDKs and minimum deployment targets for OS X. Let's fix the detection of SDKs, and let's explicitely set that we link against libc++ and mmacosx-version-min is 10.7.

llvm-svn: 227509

9 years agox86: Remove the W64ALLOCA pseudo
Reid Kleckner [Thu, 29 Jan 2015 23:09:37 +0000 (23:09 +0000)]
x86: Remove the W64ALLOCA pseudo

This is just an alias for CALL64pcrel32, and we can just use that opcode
with explicit defs in the MI.

No functionality change.

llvm-svn: 227508

9 years ago[fuzzer] add -use_full_coverage_set=1 which solves FullCoverageSetTest. This does...
Kostya Serebryany [Thu, 29 Jan 2015 23:01:07 +0000 (23:01 +0000)]
[fuzzer] add -use_full_coverage_set=1 which solves FullCoverageSetTest. This does not scale very well yet, but might be a good start.

llvm-svn: 227507

9 years ago[AArch64] Add INITIALIZE_PASS macros to AArch64A57FPLoadBalancing.
Chad Rosier [Thu, 29 Jan 2015 22:57:37 +0000 (22:57 +0000)]
[AArch64] Add INITIALIZE_PASS macros to AArch64A57FPLoadBalancing.

These are needed so this pass will produce output when
e.g. -print-after-all is used.

Phabricator Review: http://reviews.llvm.org/D7264
Patch by Geoff Berry <gberry@codeaurora.org>!

llvm-svn: 227506

9 years agoAdd an assert to check atom ordinal.
Rui Ueyama [Thu, 29 Jan 2015 22:39:43 +0000 (22:39 +0000)]
Add an assert to check atom ordinal.

No two atoms are allowed to have the same file and atom ordinals.
If there's such atoms, there's a bug in the reader.

llvm-svn: 227504

9 years agoUpdate comments to use unreachable instead of llvm.trap, as implemented now
Reid Kleckner [Thu, 29 Jan 2015 22:33:00 +0000 (22:33 +0000)]
Update comments to use unreachable instead of llvm.trap, as implemented now

win64: Call __chkstk through a register with the large code model

Fixes half of PR18582. True dynamic allocas will still have a
CALL64pcrel32 which will fail.

Reviewers: majnemer

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

llvm-svn: 227503

9 years agoUpdate comments to use unreachable instead of llvm.trap, as implemented now
Reid Kleckner [Thu, 29 Jan 2015 22:32:26 +0000 (22:32 +0000)]
Update comments to use unreachable instead of llvm.trap, as implemented now

llvm-svn: 227502

9 years agoELF: Remove dead code.
Rui Ueyama [Thu, 29 Jan 2015 22:18:28 +0000 (22:18 +0000)]
ELF: Remove dead code.

_runLayoutPass is always true. No way to set a new value to the
member variable.

llvm-svn: 227501

9 years agoPECOFF: Do not use LayoutPass and instead use simpler one.
Rui Ueyama [Thu, 29 Jan 2015 22:12:50 +0000 (22:12 +0000)]
PECOFF: Do not use LayoutPass and instead use simpler one.

The LayoutPass is one of the slowest pass. This change is to skip
that pass. This change not only improve performance but also improve
maintainability of the code because the LayoutPass is pretty complex.

Previously we used the LayoutPass to sort all atoms in a specific way,
and reorder them again for PE/COFF in GroupedSectionPass.

I spent time on improving and fixing bugs in the LayoutPass (e.g.
r193029), but the pass is still hard to understand and hard to use.
It's better not to depend on that if we don't need. For PE/COFF, we
just wanted to sort atoms in the same order as the file order in the
command line.

The feature we used in the LayoutPass is now simplified to
compareByPosition function in OrderPass.cpp. The function is just 5
lines.

This patch changes the order of final output because it changes the
sort order a bit. The output is still correct, though.

llvm-svn: 227500

9 years ago[LoopReroll] Alter the data structures used during reroll validation.
James Molloy [Thu, 29 Jan 2015 21:52:03 +0000 (21:52 +0000)]
[LoopReroll] Alter the data structures used during reroll validation.

The validation algorithm used an incremental approach, building each
iteration's data structures temporarily, validating them, then
adding them to a global set.

This does not scale well to having multiple sets of Root nodes, as the
set of instructions used in each iteration is the union over all
the root nodes. Therefore, refactor the logic to create a single, simple
container to which later logic then refers. This makes it simpler
control-flow wise to make the creation of the container more complex with
the addition of multiple root sets.

llvm-svn: 227499

9 years ago[Hexagon] Organizing tests and adding a few missing jump instruction encodings.
Colin LeMahieu [Thu, 29 Jan 2015 21:47:15 +0000 (21:47 +0000)]
[Hexagon] Organizing tests and adding a few missing jump instruction encodings.

llvm-svn: 227498

9 years ago[CMake] Get rid of TARGET_64_BIT_CFLAGS: explicitly list required flags for each...
Alexey Samsonov [Thu, 29 Jan 2015 21:32:34 +0000 (21:32 +0000)]
[CMake] Get rid of TARGET_64_BIT_CFLAGS: explicitly list required flags for each architecture.

llvm-svn: 227496

9 years ago[Hexagon] Adding missing instruction encodings and tests.
Colin LeMahieu [Thu, 29 Jan 2015 21:30:22 +0000 (21:30 +0000)]
[Hexagon] Adding missing instruction encodings and tests.

llvm-svn: 227495

9 years ago[Hexagon] Adding alu vector instructions
Colin LeMahieu [Thu, 29 Jan 2015 21:09:30 +0000 (21:09 +0000)]
[Hexagon] Adding alu vector instructions

llvm-svn: 227493

9 years ago[GVN] don't propagate equality comparisons of FP zero (PR22376)
Sanjay Patel [Thu, 29 Jan 2015 20:51:49 +0000 (20:51 +0000)]
[GVN] don't propagate equality comparisons of FP zero (PR22376)

In http://reviews.llvm.org/D6911, we allowed GVN to propagate FP equalities
to allow some simple value range optimizations. But that introduced a bug
when comparing to -0.0 or 0.0: these compare equal even though they are not
bitwise identical.

This patch disallows propagating zero constants in equality comparisons.
Fixes: http://llvm.org/bugs/show_bug.cgi?id=22376

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

llvm-svn: 227491

9 years agoAll signal handlers are required to have C language linkage in C++. This does not...
Aaron Ballman [Thu, 29 Jan 2015 20:48:34 +0000 (20:48 +0000)]
All signal handlers are required to have C language linkage in C++. This does not fix all signal handlers, but does fix the most recent one.

llvm-svn: 227490

9 years agoAdd missing test from r227488
David Blaikie [Thu, 29 Jan 2015 20:25:46 +0000 (20:25 +0000)]
Add missing test from r227488

llvm-svn: 227489

9 years agoMatching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the debug...
David Blaikie [Thu, 29 Jan 2015 20:23:47 +0000 (20:23 +0000)]
Matching ARM change for r227481: DebugInfo: Teach Fast ISel to respect the debug location of comparisons in jumps.

llvm-svn: 227488

9 years agoRefactor test to be reused across architectures
David Blaikie [Thu, 29 Jan 2015 20:21:24 +0000 (20:21 +0000)]
Refactor test to be reused across architectures

llvm-svn: 227487

9 years agoRemove erroneous REQUIRES: object-emission for asm test.
David Blaikie [Thu, 29 Jan 2015 20:17:15 +0000 (20:17 +0000)]
Remove erroneous REQUIRES: object-emission for asm test.

llvm-svn: 227486

9 years agoMissing test case for r227481
David Blaikie [Thu, 29 Jan 2015 19:40:02 +0000 (19:40 +0000)]
Missing test case for r227481

llvm-svn: 227485

9 years agoR600/SI: Implement enableAggressiveFMAFusion
Matt Arsenault [Thu, 29 Jan 2015 19:34:32 +0000 (19:34 +0000)]
R600/SI: Implement enableAggressiveFMAFusion

Add tests for the various combines. This should
always be at least cycle neutral on all subtargets for f64,
and faster on some. For f32 we should prefer selecting
v_mad_f32 over v_fma_f32.

llvm-svn: 227484