platform/upstream/llvm.git
9 years ago[BBVectorize] Remove redundant assignment.
Tilmann Scheller [Fri, 19 Dec 2014 17:13:12 +0000 (17:13 +0000)]
[BBVectorize] Remove redundant assignment.

Found by the Clang static analyzer.

llvm-svn: 224589

9 years agoReapply: [InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr
Bruno Cardoso Lopes [Fri, 19 Dec 2014 17:12:35 +0000 (17:12 +0000)]
Reapply: [InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr

The visitSwitchInst generates SUB constant expressions to recompute the
switch condition. When truncating the condition to a smaller type, SUB
expressions should use the previous type (before trunc) for both
operands. Also, fix code to also return the modified switch when only
the truncation is performed.

This fixes an assertion crash.

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

rdar://problem/19191835

llvm-svn: 224588

9 years ago[LoopVectorize] Remove redundant assignment.
Tilmann Scheller [Fri, 19 Dec 2014 17:02:31 +0000 (17:02 +0000)]
[LoopVectorize] Remove redundant assignment.

Found by the Clang static analyzer.

llvm-svn: 224587

9 years ago[ARM] Remove dead assignment.
Tilmann Scheller [Fri, 19 Dec 2014 16:57:33 +0000 (16:57 +0000)]
[ARM] Remove dead assignment.

Found by the Clang static analyzer.

llvm-svn: 224586

9 years agoUse ObjCMultipleMethodNames to match the option.
Fariborz Jahanian [Fri, 19 Dec 2014 16:55:51 +0000 (16:55 +0000)]
Use ObjCMultipleMethodNames to match the option.

llvm-svn: 224585

9 years ago(diagnostics) Fix typo.
Andreas Simbuerger [Fri, 19 Dec 2014 16:49:39 +0000 (16:49 +0000)]
(diagnostics) Fix typo.

Thanks Albert Cohen.

llvm-svn: 224584

9 years agouse -0.0 when creating an fneg instruction
Sanjay Patel [Fri, 19 Dec 2014 16:44:08 +0000 (16:44 +0000)]
use -0.0 when creating an fneg instruction

Backends recognize (-0.0 - X) as the canonical form for fneg
and produce better code. Eg, ppc64 with 0.0:

   lis r2, ha16(LCPI0_0)
   lfs f0, lo16(LCPI0_0)(r2)
   fsubs f1, f0, f1
   blr

vs. -0.0:

   fneg f1, f1
   blr

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

llvm-svn: 224583

9 years agoAttributes accepting an EnumArgument are allowed to pass a string literal, or an...
Aaron Ballman [Fri, 19 Dec 2014 16:42:04 +0000 (16:42 +0000)]
Attributes accepting an EnumArgument are allowed to pass a string literal, or an identifier. VariadicEnumArguments now behave consistently instead of only accepting a string literal.

This change affects the only attribute accepting a variadic enumeration: callable_when.

llvm-svn: 224582

9 years agoFixed a typo in a comment. NFC.
Alexander Kornienko [Fri, 19 Dec 2014 15:37:02 +0000 (15:37 +0000)]
Fixed a typo in a comment. NFC.

llvm-svn: 224581

9 years ago[lsan] Add debug output to leak_check_before_thread_started.cc.
Sergey Matveev [Fri, 19 Dec 2014 15:33:13 +0000 (15:33 +0000)]
[lsan] Add debug output to leak_check_before_thread_started.cc.

Trying to investigate why this test is flaky.

llvm-svn: 224580

9 years agoPutting unevaluated expression warnings, and evaluated typeid warnings, under their...
Aaron Ballman [Fri, 19 Dec 2014 14:56:49 +0000 (14:56 +0000)]
Putting unevaluated expression warnings, and evaluated typeid warnings, under their own warning flags. Amends r224465.

llvm-svn: 224578

9 years ago[sanitizer] Rename InitIfLinkerInitialized to InitLinkerInitialized.
Sergey Matveev [Fri, 19 Dec 2014 14:45:19 +0000 (14:45 +0000)]
[sanitizer] Rename InitIfLinkerInitialized to InitLinkerInitialized.

llvm-svn: 224577

9 years agoRevert "[InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr"
Bruno Cardoso Lopes [Fri, 19 Dec 2014 14:36:24 +0000 (14:36 +0000)]
Revert "[InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr"

Reverts commit r224574 to appease buildbots:

The visitSwitchInst generates SUB constant expressions to recompute the
switch condition. When truncating the condition to a smaller type, SUB
expressions should use the previous type (before trunc) for both
operands. This fixes an assertion crash.

llvm-svn: 224576

9 years agotsan: intercept closedir
Dmitry Vyukov [Fri, 19 Dec 2014 14:29:40 +0000 (14:29 +0000)]
tsan: intercept closedir

llvm-svn: 224575

9 years ago[InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr
Bruno Cardoso Lopes [Fri, 19 Dec 2014 14:23:15 +0000 (14:23 +0000)]
[InstCombine] Fix visitSwitchInst to use right operand types for sub cstexpr

The visitSwitchInst generates SUB constant expressions to recompute the
switch condition. When truncating the condition to a smaller type, SUB
expressions should use the previous type (before trunc) for both
operands. This fixes an assertion crash.

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

rdar://problem/19191835

llvm-svn: 224574

9 years ago[asan] Test BB- and edge- level coverage on Android.
Evgeniy Stepanov [Fri, 19 Dec 2014 12:21:40 +0000 (12:21 +0000)]
[asan] Test BB- and edge- level coverage on Android.

llvm-svn: 224572

9 years ago[asan] Add tests for direct (mmap-ed) mode for BB- and edge-level coverage.
Evgeniy Stepanov [Fri, 19 Dec 2014 11:49:46 +0000 (11:49 +0000)]
[asan] Add tests for direct (mmap-ed) mode for BB- and edge-level coverage.

llvm-svn: 224571

9 years agoRemove redundant assignment.
Tilmann Scheller [Fri, 19 Dec 2014 11:29:34 +0000 (11:29 +0000)]
Remove redundant assignment.

Found with the Clang static analyzer.

llvm-svn: 224570

9 years ago[asan] Resurrect sanitize-coverage test on Android.
Evgeniy Stepanov [Fri, 19 Dec 2014 10:40:14 +0000 (10:40 +0000)]
[asan] Resurrect sanitize-coverage test on Android.

The test got silently disabled because of a typo in the lit config.
Also, compiler flags have changed (asan-coverage -> fsanitize-coverage).

llvm-svn: 224569

9 years agoRemove wrong semi-colons
Jeroen Ketema [Fri, 19 Dec 2014 09:18:23 +0000 (09:18 +0000)]
Remove wrong semi-colons

Patch by Alastair Donaldson

llvm-svn: 224568

9 years agoLTO: Export local context symbols
Duncan P. N. Exon Smith [Fri, 19 Dec 2014 07:19:50 +0000 (07:19 +0000)]
LTO: Export local context symbols

Export symbols in libLTO.dylib for the local context-related functions
added in r221733 (`LTO_API_VERSION=11`)... and add the missing
definition for `lto_codegen_create_in_local_context()`.

llvm-svn: 224567

9 years agoRename MapValue(Metadata*) to MapMetadata()
Duncan P. N. Exon Smith [Fri, 19 Dec 2014 06:06:18 +0000 (06:06 +0000)]
Rename MapValue(Metadata*) to MapMetadata()

Instead of reusing the name `MapValue()` when mapping `Metadata`, use
`MapMetadata()`.  The old name doesn't make much sense after the
`Metadata`/`Value` split.

llvm-svn: 224566

9 years agoTest commit
Andrew Wilkins [Fri, 19 Dec 2014 02:45:48 +0000 (02:45 +0000)]
Test commit

Just changing whitespace to test commit access...

llvm-svn: 224565

9 years ago[Sanitizer] Get rid of parseArgument helper function. NFC.
Alexey Samsonov [Fri, 19 Dec 2014 02:35:16 +0000 (02:35 +0000)]
[Sanitizer] Get rid of parseArgument helper function. NFC.

llvm-svn: 224564

9 years ago[Object] Don't crash on empty export lists.
Juergen Ributzka [Fri, 19 Dec 2014 02:31:01 +0000 (02:31 +0000)]
[Object] Don't crash on empty export lists.

Summary: This fixes the exports iterator if the export list is empty.

Reviewers: Bigcheese, kledzik

Subscribers: llvm-commits

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

llvm-svn: 224563

9 years agoFix layering violation, Lex shouldn't know about Decl
David Majnemer [Fri, 19 Dec 2014 02:13:56 +0000 (02:13 +0000)]
Fix layering violation, Lex shouldn't know about Decl

llvm-svn: 224562

9 years agoPR21969: Improve diagnostics for a conversion function that has any pieces of a
Richard Smith [Fri, 19 Dec 2014 02:07:47 +0000 (02:07 +0000)]
PR21969: Improve diagnostics for a conversion function that has any pieces of a
declared return type (including a trailing-return-type in C++14).

llvm-svn: 224561

9 years agoRegisterCoalescer: rewrite eliminateUndefCopy().
Matthias Braun [Fri, 19 Dec 2014 01:39:46 +0000 (01:39 +0000)]
RegisterCoalescer: rewrite eliminateUndefCopy().

This also fixes problems with undef copies of subregisters. I can't
attach a testcase for that as none of the targets in trunk has
subregister liveness tracking enabled.

llvm-svn: 224560

9 years agoFixed an issue that could cause GetPointeeData() to fail when passing in a non-zero...
Greg Clayton [Fri, 19 Dec 2014 01:28:42 +0000 (01:28 +0000)]
Fixed an issue that could cause GetPointeeData() to fail when passing in a non-zero index.

The issue was we had a global variable that was a pointer, and the address type of the children wasn't "load address" when it needed to be. Full details are in the comments of the changes.

<rdar://problem/15107937>

llvm-svn: 224559

9 years agoCorrect delayed typos in the operand to typeof expressions.
Kaelyn Takata [Fri, 19 Dec 2014 01:28:40 +0000 (01:28 +0000)]
Correct delayed typos in the operand to typeof expressions.

Fixes PR21947.

llvm-svn: 224558

9 years agoFix a typo.
Adrian Prantl [Fri, 19 Dec 2014 01:02:11 +0000 (01:02 +0000)]
Fix a typo.

llvm-svn: 224557

9 years ago[Hexagon] Adding loop0/1 sp0/1/2loop0 instructions.
Colin LeMahieu [Fri, 19 Dec 2014 00:06:53 +0000 (00:06 +0000)]
[Hexagon] Adding loop0/1 sp0/1/2loop0 instructions.

llvm-svn: 224556

9 years agoExplain why LLVM is emitting a DW_AT_containing_type inside of a class.
Adrian Prantl [Fri, 19 Dec 2014 00:01:20 +0000 (00:01 +0000)]
Explain why LLVM is emitting a DW_AT_containing_type inside of a class.

llvm-svn: 224555

9 years ago[cmake] Unbreak LLVM-Config.cmake / llvm_expand_dependencies.
Peter Zotov [Thu, 18 Dec 2014 23:56:52 +0000 (23:56 +0000)]
[cmake] Unbreak LLVM-Config.cmake / llvm_expand_dependencies.

The algorithm for sorting libraries in topological order, as
previously implemented, had a few issues:
  * It didn't make any sense.
  * It didn't actually sort libraries in topological order.
  * It hung on some inputs, e.g. "LLVMipo".

This commit replaces the old algorithm with a straightforward port
from llvm-config.cpp.

llvm-svn: 224554

9 years agoConstantFold: Shifting undef by zero results in undef
David Majnemer [Thu, 18 Dec 2014 23:54:43 +0000 (23:54 +0000)]
ConstantFold: Shifting undef by zero results in undef

llvm-svn: 224553

9 years agoReverting 224550, was not ready for commit.
Colin LeMahieu [Thu, 18 Dec 2014 23:36:15 +0000 (23:36 +0000)]
Reverting 224550, was not ready for commit.

llvm-svn: 224552

9 years agoRemove an extra ';' on line 1120 include/llvm/Support/MachO.h .
Kevin Enderby [Thu, 18 Dec 2014 23:34:16 +0000 (23:34 +0000)]
Remove an extra ';' on line 1120 include/llvm/Support/MachO.h .

Caught by Mike Edwards!

llvm-svn: 224551

9 years ago[Hexagon] Adding loop0/1 sp0/1/2loop0 instructions.
Colin LeMahieu [Thu, 18 Dec 2014 23:27:51 +0000 (23:27 +0000)]
[Hexagon] Adding loop0/1 sp0/1/2loop0 instructions.

llvm-svn: 224550

9 years ago[c Sema]. Patch fixes pointer-bool-conversion warning on C code
Fariborz Jahanian [Thu, 18 Dec 2014 23:14:51 +0000 (23:14 +0000)]
[c Sema]. Patch fixes pointer-bool-conversion warning on C code
when source range is incorrect causing the warning to be
issued when it should not because expression is in a macro.
rdar://19256338

llvm-svn: 224549

9 years agoAdd printing the LC_SUB_UMBRELLA load command with llvm-objdump’s -private-headers.
Kevin Enderby [Thu, 18 Dec 2014 23:13:26 +0000 (23:13 +0000)]
Add printing the LC_SUB_UMBRELLA load command with llvm-objdump’s -private-headers.

llvm-svn: 224548

9 years agoInstead of explicitely comparing both lowercase and uppercase variants.
Roman Divacky [Thu, 18 Dec 2014 23:12:34 +0000 (23:12 +0000)]
Instead of explicitely comparing both lowercase and uppercase variants.
.lower() the Name and compare only the lowecase. Removing 81 compares/lines of
code. This changes the accepted string to be mixed lower/upper case but it
should be ok.

Discussed with Jim Grosbach.

llvm-svn: 224547

9 years agoRevert "Change -save-temps to emit unoptimized bitcode files."
Reid Kleckner [Thu, 18 Dec 2014 23:07:04 +0000 (23:07 +0000)]
Revert "Change -save-temps to emit unoptimized bitcode files."

This reverts commit r224503.

It broke compilation of fortran through the Clang driver. Previously
`clang -c t.f` would invoke `gcc t.f` and `clang -cc1as`, but now it
tries to call `clang -cc1 t.f` which fails for obvious reasons.

llvm-svn: 224546

9 years ago[CMake] Add check-asan-dynamic command to external compiler-rt setup.
Alexey Samsonov [Thu, 18 Dec 2014 21:40:39 +0000 (21:40 +0000)]
[CMake] Add check-asan-dynamic command to external compiler-rt setup.

llvm-svn: 224545

9 years ago[macho] -rpath support
Jean-Daniel Dupas [Thu, 18 Dec 2014 21:33:38 +0000 (21:33 +0000)]
[macho] -rpath support

Summary:
Work on adding -rpath support to the mach-o linker.
This patch is based on the ld64 behavior for the command line option validation.

It includes a basic test to check that the LC_RPATH load commands are properly generated when that option is used.

It also add LC_RPATH support to the binary reader, but I don't know how to test it though.

Reviewers: kledzik

Subscribers: llvm-commits

Projects: #lld

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

llvm-svn: 224544

9 years agoAlways use python-based SWIG generation script for CMake.
Zachary Turner [Thu, 18 Dec 2014 21:25:53 +0000 (21:25 +0000)]
Always use python-based SWIG generation script for CMake.

As a first step in addressing Bug #21921 this patch prefers
the python-based SWIG generation by default rather than the
shell-based SWIG generation any time python is enabled
(e.g. LLDB_DISABLE_PYTHON is 0).

Additionally, this patch changes the default value of
LLDB_DISABLE_PYTHON from 1 to 0 on Windows.

Anyone not using the CMake build is unaffected by this patch.

llvm-svn: 224543

9 years agofix formatting; NFC
Sanjay Patel [Thu, 18 Dec 2014 21:11:09 +0000 (21:11 +0000)]
fix formatting; NFC

llvm-svn: 224542

9 years agoHave llvm-c-test only use libLLVM if libLLVM has all the right components.
Chris Bieneman [Thu, 18 Dec 2014 21:03:49 +0000 (21:03 +0000)]
Have llvm-c-test only use libLLVM if libLLVM has all the right components.

Summary: We should only have llvm-c-test use libLLVM if the library is built with the default set of components or if LLVM_DYLIB_COMPONENTS includes all the LLVM_LINK_COMPONENTS required for llvm-c-test. Making libLLVM always used causes build failures if libLLVM doesn't include all

Reviewers: chapuni, ributzka

Reviewed By: ributzka

Subscribers: ributzka, llvm-commits

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

llvm-svn: 224541

9 years agoDisplay local kernel version only when non-remote in PlatformLinux.
Stephane Sezer [Thu, 18 Dec 2014 20:24:32 +0000 (20:24 +0000)]
Display local kernel version only when non-remote in PlatformLinux.

Summary:
This is part of the Linux remote platform work. Displaying the local
kernel information when remote debugging doesn't make sense, so we
should verify if we are in host mode before doing so.

Test Plan:
Connect to a remote linux platform mode daemon with `platform select
remote-linux` followed by `platform connect ...`, and look at the output
of `platform status`.

Reviewers: tfiala, clayborg, vharron, compnerd

Subscribers: lldb-commits

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

llvm-svn: 224540

9 years ago[NFC] Removing extra semicolon.
Colin LeMahieu [Thu, 18 Dec 2014 20:15:32 +0000 (20:15 +0000)]
[NFC] Removing extra semicolon.

llvm-svn: 224539

9 years agoLiveIntervalAnalysis: Cleanup computeDeadValues
Matthias Braun [Thu, 18 Dec 2014 19:58:52 +0000 (19:58 +0000)]
LiveIntervalAnalysis: Cleanup computeDeadValues

- This also fixes a bug introduced in r223880 where values were not
  correctly marked as Dead anymore.
- Cleanup computeDeadValues(): split up SubRange code variant, simplify
  arguments.

llvm-svn: 224538

9 years agoWe don't really handle printing embedded NULs in strings, but if we were to, we would...
Enrico Granata [Thu, 18 Dec 2014 19:43:29 +0000 (19:43 +0000)]
We don't really handle printing embedded NULs in strings, but if we were to, we would need to have this logic inside the StringPrinter. So, add it.. For, you know, one day in the future where we might want to handle embedded NULs in strings...

llvm-svn: 224537

9 years agoObjective-C. Provide group name for warning
Fariborz Jahanian [Thu, 18 Dec 2014 19:41:11 +0000 (19:41 +0000)]
Objective-C. Provide group name for warning
on multiple selector names found during lookup.
rdar://19265296

llvm-svn: 224536

9 years agoAdd myself as SystemZ code owner
Ulrich Weigand [Thu, 18 Dec 2014 19:27:50 +0000 (19:27 +0000)]
Add myself as SystemZ code owner

As agreed with Richard Sandiford, I'm taking over code ownership
for the SystemZ back end from him.

llvm-svn: 224535

9 years agoAdd printing the LC_SUB_FRAMEWORK load command with llvm-objdump’s -private-headers.
Kevin Enderby [Thu, 18 Dec 2014 19:24:35 +0000 (19:24 +0000)]
Add printing the LC_SUB_FRAMEWORK load command with llvm-objdump’s -private-headers.

llvm-svn: 224534

9 years agoModuleBuilder: assert that all deferred inline method defs get handled
Hans Wennborg [Thu, 18 Dec 2014 19:19:00 +0000 (19:19 +0000)]
ModuleBuilder: assert that all deferred inline method defs get handled

While we're here, also move the declaration of DeferredInlineMethodDefinitions
closer to the other member vars and make it a SmallVector. NFC.

llvm-svn: 224533

9 years agotsan: add an additional test for signal handlers
Dmitry Vyukov [Thu, 18 Dec 2014 18:40:52 +0000 (18:40 +0000)]
tsan: add an additional test for signal handlers

the test passes now, but signal handling during thread creation
and shutdown is tricky

llvm-svn: 224532

9 years agotsan: disable __tls_get_addr interceptor
Dmitry Vyukov [Thu, 18 Dec 2014 18:39:55 +0000 (18:39 +0000)]
tsan: disable __tls_get_addr interceptor

see the added comments for details, it's messy

llvm-svn: 224531

9 years agotsan: fix data races between signal handler and sigaction
Dmitry Vyukov [Thu, 18 Dec 2014 18:31:47 +0000 (18:31 +0000)]
tsan: fix data races between signal handler and sigaction

signal handler reads sa_sigaction when a concurrent sigaction call can modify it
as the result in could try to call SIG_DFL or a partially overwritten function pointer

llvm-svn: 224530

9 years agoFix suppressions file usage
Filipe Cabecinhas [Thu, 18 Dec 2014 18:25:18 +0000 (18:25 +0000)]
Fix suppressions file usage

Summary:
Always quote suppressions files given to *_OPTIONS.
This will make it not break when given full Windows paths (otherwise,
parsing would stop after the drive's letter + ':').

Also fix one or two cases where the suppression files' extensions were
not *.supp.

Reviewers: samsonov, kcc

Subscribers: llvm-commits

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

llvm-svn: 224529

9 years agoOnly compile RegisterContextWindows_x86.cpp for x86 host architecture.
Zachary Turner [Thu, 18 Dec 2014 18:21:33 +0000 (18:21 +0000)]
Only compile RegisterContextWindows_x86.cpp for x86 host architecture.

This fixes compilation failures in the 64-bit build of LLDB on Windows.

Patch by Aidan Dodds

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

llvm-svn: 224528

9 years agoAdd missing implementation of 'sys::path::is_other' to the support library.
Juergen Ributzka [Thu, 18 Dec 2014 18:19:47 +0000 (18:19 +0000)]
Add missing implementation of 'sys::path::is_other' to the support library.

The header claims that this function exists, but the linker wasn't too happy
about it not being in the library.

llvm-svn: 224527

9 years agoRevert "Don't build invalid AST nodes during recovery"
Reid Kleckner [Thu, 18 Dec 2014 18:17:42 +0000 (18:17 +0000)]
Revert "Don't build invalid AST nodes during recovery"

This reverts commit r224451. It caused us to reject some valid existing
code.

This code appears to run in non-error cases as well as error cases. If
the scope of a DependentScopeDeclRefExpr is still incomplete it probably
means we still have more instantiation to do.

llvm-svn: 224526

9 years ago[Objective-C]. Patch to unify code generation for ObjCMsgSend and ObjCBoxedExpr.
Fariborz Jahanian [Thu, 18 Dec 2014 17:13:56 +0000 (17:13 +0000)]
[Objective-C]. Patch to unify code generation for ObjCMsgSend and ObjCBoxedExpr.
Patch by Alex Denisov. NFC.

llvm-svn: 224525

9 years ago[mips][microMIPS] Fix bugs related to atomic SC/LL instructions
Jozef Kolek [Thu, 18 Dec 2014 16:39:29 +0000 (16:39 +0000)]
[mips][microMIPS] Fix bugs related to atomic SC/LL instructions

Fix bugs related to atomic microMIPS SC/LL instructions: While expanding atomic
operations the mips32r2 encoding was emitted instead of microMIPS.

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

llvm-svn: 224524

9 years agoCorrection to -mfu=neon-vfpv4 to pass the correct backend feature name
Richard Barton [Thu, 18 Dec 2014 16:31:18 +0000 (16:31 +0000)]
Correction to -mfu=neon-vfpv4 to pass the correct backend feature name

Change-Id: I4dbfe1d97670fc4e626368ef1f91fc008778dfca
llvm-svn: 224523

9 years ago[Sanitizer] Fix GetRSS on Linux with non-4k pages
Jay Foad [Thu, 18 Dec 2014 16:24:01 +0000 (16:24 +0000)]
[Sanitizer] Fix GetRSS on Linux with non-4k pages

Summary:
The numbers in /proc/self/statm are in pages, not in fixed 4k units.
This fixes Linux/hard_rss_limit_mb_test.cc on my PowerPC64 box which
has 64k pages.

Reviewers: kcc, willschm

Reviewed By: willschm

Subscribers: llvm-commits

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

llvm-svn: 224522

9 years agoARM: fix an off-by-one in the register list access
Saleem Abdulrasool [Thu, 18 Dec 2014 16:16:53 +0000 (16:16 +0000)]
ARM: fix an off-by-one in the register list access

Fix an off-by-one access introduced in 224502 for push.w and pop.w with single
register operands.  Add test cases for both scenarios.

Thanks to Asiri Rathnayake for pointing out the failure!

llvm-svn: 224521

9 years agotsan: fix deadlock reporting
Dmitry Vyukov [Thu, 18 Dec 2014 14:05:34 +0000 (14:05 +0000)]
tsan: fix deadlock reporting

currently deadlock detector reports effectively random stacks in report after flush
because it looks at old edges with wrong stacks

llvm-svn: 224519

9 years agotsan: fix failing CHECK In deadlock detector
Dmitry Vyukov [Thu, 18 Dec 2014 14:02:28 +0000 (14:02 +0000)]
tsan: fix failing CHECK In deadlock detector
and re-enable the test

llvm-svn: 224518

9 years ago[mips] Clean up the CodeGen/Mips/inlineasmmemop.ll test. NFC.
Toma Tabacu [Thu, 18 Dec 2014 13:03:51 +0000 (13:03 +0000)]
[mips] Clean up the CodeGen/Mips/inlineasmmemop.ll test. NFC.

Summary:
Improve comments and remove a redundant attribute list.
There are no functional changes (to the CHECK's or to the code).

Part of these changes were suggested in http://reviews.llvm.org/D6637.

Reviewers: dsanders

Reviewed By: dsanders

Subscribers: llvm-commits

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

llvm-svn: 224517

9 years ago[AVX512] Enable FP arithmetic lowering for AVX512VL subsets.
Robert Khasanov [Thu, 18 Dec 2014 12:28:22 +0000 (12:28 +0000)]
[AVX512] Enable FP arithmetic lowering for AVX512VL subsets.
Added RegOp2MemOpTable4 to transform 4th operand from register to memory in merge-masked versions of instructions.
Added lowering tests.

llvm-svn: 224516

9 years agoEnabling this test again on mingw. The problem seems to happen when
Yaron Keren [Thu, 18 Dec 2014 12:13:14 +0000 (12:13 +0000)]
Enabling this test again on mingw. The problem seems to happen when
two identical module.modulemap are available on the include path and
so should be fixed in the mingw driver include dies, when we'll have it.

llvm-svn: 224515

9 years ago[Msan] Generalize instrumentation code to support FreeBSD mapping
Viktor Kutuzov [Thu, 18 Dec 2014 12:12:59 +0000 (12:12 +0000)]
[Msan] Generalize instrumentation code to support FreeBSD mapping
Differential Revision: http://reviews.llvm.org/D6666

llvm-svn: 224514

9 years agoclang-format: Fix incorrect detection of ObjC "in" keyword.
Daniel Jasper [Thu, 18 Dec 2014 12:11:01 +0000 (12:11 +0000)]
clang-format: Fix incorrect detection of ObjC "in" keyword.

Before:
  for (auto v : in [1]) { ..

After:
  for (auto v : in[1]) { ..

llvm-svn: 224513

9 years agoFixed warnings on redefine keywords and reserved ids.
Serge Pavlov [Thu, 18 Dec 2014 11:14:21 +0000 (11:14 +0000)]
Fixed warnings on redefine keywords and reserved ids.

Repared support for warnings -Wkeyword-macro and -Wreserved-id-macro.
The warning -Wkeyword-macro now is not issued in patterns that are used
in configuration scripts:

    #define inline

also for 'const', 'extern' and 'static'. If macro repalcement is identical
to macro name, the warning also is not issued:

    #define volatile volatile

And finally if macro replacement is also a keyword identical to the replaced
one but decorated with leading/trailing underscores:

    #define inline __inline
    #define inline __inline__
    #define inline _inline // in MSVC compatibility mode

Warning -Wreserved-id-macro is off by default, it could help catching
things like:

    #undef __cplusplus

llvm-svn: 224512

9 years agotsan: disable the test even harder
Dmitry Vyukov [Thu, 18 Dec 2014 10:55:41 +0000 (10:55 +0000)]
tsan: disable the test even harder

currently it fails in cmake build with weird errors:

/tmp/real_deadlock_detector_stress_test-68a5ae.o: In function `__clang_call_terminate':
/ssd/src/llvm/projects/compiler-rt/test/tsan/real_deadlock_detector_stress_test.cc:(.text.__clang_call_terminate[__clang_call_terminate]+0x12): undefined reference to `__cxa_begin_catch'
/ssd/src/llvm/projects/compiler-rt/test/tsan/real_deadlock_detector_stress_test.cc:(.text.__clang_call_terminate[__clang_call_terminate]+0x17): undefined reference to `std::terminate()'
/tmp/real_deadlock_detector_stress_test-68a5ae.o: In function `std::vector<int, std::allocator<int> >::_M_check_len(unsigned long, char const*) const':
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_vector.h:1339: undefined reference to `std::__throw_length_error(char const*)'
/tmp/real_deadlock_detector_stress_test-68a5ae.o: In function `__gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*)':
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ext/new_allocator.h:102: undefined reference to `std::__throw_bad_alloc()'
/tmp/real_deadlock_detector_stress_test-68a5ae.o:(.eh_frame+0x63): undefined reference to `__gxx_personality_v0'
clang-3.5: error: linker command failed with exit code 1 (use -v to see invocation)

llvm-svn: 224511

9 years agotsan: add a stress test for deadlock detector
Dmitry Vyukov [Thu, 18 Dec 2014 10:32:48 +0000 (10:32 +0000)]
tsan: add a stress test for deadlock detector

currently disabled because fails

llvm-svn: 224509

9 years agotsan: don't crash with NULL deref during reporting
Dmitry Vyukov [Thu, 18 Dec 2014 10:19:32 +0000 (10:19 +0000)]
tsan: don't crash with NULL deref during reporting

tctx==NULL crash observed during deadlock reporting.
There seems to be some bugs in the deadlock detector,
but it is still useful to be more robust during reporting.

llvm-svn: 224508

9 years agotsan: disable flaky debug check
Dmitry Vyukov [Thu, 18 Dec 2014 10:17:01 +0000 (10:17 +0000)]
tsan: disable flaky debug check

see the comment for details

llvm-svn: 224507

9 years agoFix Visual C++ error "'llvm::make_unique' : ambiguous call to overloaded function".
Yaron Keren [Thu, 18 Dec 2014 10:03:35 +0000 (10:03 +0000)]
Fix Visual C++ error "'llvm::make_unique' : ambiguous call to overloaded function".

llvm-svn: 224506

9 years agoParse: Don't parse after the eof has been consumed
David Majnemer [Thu, 18 Dec 2014 09:57:31 +0000 (09:57 +0000)]
Parse: Don't parse after the eof has been consumed

ParseCXXNonStaticMemberInitializer stashes away all the tokens for the
initializer and an additional EOF token to denote where the initializer
ends.  However, it is possible for ParseLexedMemberInitializer to get
its hands on the "real" EOF token; since the two tokens are
indistinguishable, we end up consuming the EOF and descend into madness.

Instead, make it possible to tell which EOF token we are looking at.

This fixes PR21872.

llvm-svn: 224505

9 years agoFix for PR21915: assert on multidimensional VLA in function arguments.
Alexey Bataev [Thu, 18 Dec 2014 06:54:53 +0000 (06:54 +0000)]
Fix for PR21915: assert on multidimensional VLA in function arguments.
Fixed assertion on type checking for arguments and parameters on function call if arguments are pointers to VLA
Differential Revision: http://reviews.llvm.org/D6655

llvm-svn: 224504

9 years agoChange -save-temps to emit unoptimized bitcode files.
Bob Wilson [Thu, 18 Dec 2014 06:08:26 +0000 (06:08 +0000)]
Change -save-temps to emit unoptimized bitcode files.

It is often convenient to use -save-temps to collect the intermediate
results of a compilation, e.g., when triaging a bug report. Besides the
temporary files for preprocessed source and assembly code, this adds the
unoptimized bitcode files as well.

This adds a new BackendJobAction, which is mostly mechanical, to run after
the CompileJobAction. When not using -save-temps, the BackendJobAction is
combined into one job with the CompileJobAction, similar to the way the
integrated assembler is handled. I've implemented this entirely as a
driver change, so under the hood, it is just using -disable-llvm-optzns
to get the unoptimized bitcode.

Based in part on a patch by Steven Wu.
rdar://problem/18909437

llvm-svn: 224503

9 years agoARM: improve instruction validation for thumb mode
Saleem Abdulrasool [Thu, 18 Dec 2014 05:24:38 +0000 (05:24 +0000)]
ARM: improve instruction validation for thumb mode

The ARM Architecture Reference Manual states the following:
  LDM{,IA,DB}:
    The SP cannot be in the list.
    The PC can be in the list.
    If the PC is in the list:
      • the LR must not be in the list
      • the instruction must be either outside any IT block, or the last
        instruction in an IT block.
  POP:
    The PC can be in the list.
    If the PC is in the list:
      • the LR must not be in the list
      • the instruction must be either outside any IT block, or the last
        instruction in an IT block.
  PUSH:
    The SP and PC can be in the list in ARM instructions, but not in Thumb
    instructions.
  STM:{,IA,DB}:
    The SP and PC can be in the list in ARM instructions, but not in Thumb
    instructions.

llvm-svn: 224502

9 years agotest: avoid unnecessary temporary files
Saleem Abdulrasool [Thu, 18 Dec 2014 05:24:32 +0000 (05:24 +0000)]
test: avoid unnecessary temporary files

Use pipes and redirect the error output to FileCheck directly.  NFC.

llvm-svn: 224501

9 years ago[SROA] Cleanup - remove the use of std::mem_fun_ref nonsense and use
Chandler Carruth [Thu, 18 Dec 2014 05:19:47 +0000 (05:19 +0000)]
[SROA] Cleanup - remove the use of std::mem_fun_ref nonsense and use
a lambda now that we have them.

llvm-svn: 224500

9 years agoModernize the getStreamedBitcodeModule interface a bit. NFC.
Rafael Espindola [Thu, 18 Dec 2014 05:08:43 +0000 (05:08 +0000)]
Modernize the getStreamedBitcodeModule interface a bit. NFC.

llvm-svn: 224499

9 years ago[PowerPC] Use MCPhysReg for tables of registers. Const-correct the tables. Only put...
Craig Topper [Thu, 18 Dec 2014 05:02:14 +0000 (05:02 +0000)]
[PowerPC] Use MCPhysReg for tables of registers. Const-correct the tables. Only put the anonymous namespace around classes. NFC.

llvm-svn: 224498

9 years ago[X86] Use correct opsize on indirect call and jump aliases.
Craig Topper [Thu, 18 Dec 2014 05:02:12 +0000 (05:02 +0000)]
[X86] Use correct opsize on indirect call and jump aliases.

llvm-svn: 224497

9 years ago[X86] Don't use PS prefix on LDMXCSR/STMXCSR.
Craig Topper [Thu, 18 Dec 2014 05:02:10 +0000 (05:02 +0000)]
[X86] Don't use PS prefix on LDMXCSR/STMXCSR.

Near as I can tell prefixes are ignored on these instructions except for a comment in the Intel docs about 0xf3. Binutils disassembler seems to ignore prefixes on these instructions. Our disassembler still doesn't distinguish PS and "no prefix" well enough for this to make a functional change, but it helps with experiments I'm doing on a potential new disassembler table builder.

llvm-svn: 224496

9 years ago[X86] Remove unnecessary 'In64BitMode' predicate for instructions that already indica...
Craig Topper [Thu, 18 Dec 2014 05:02:08 +0000 (05:02 +0000)]
[X86] Remove unnecessary 'In64BitMode' predicate for instructions that already indicate use of REX.W.

llvm-svn: 224495

9 years agoAdd a corresponding '@LOCAL' parse to match r224415.
Justin Hibbits [Thu, 18 Dec 2014 03:06:37 +0000 (03:06 +0000)]
Add a corresponding '@LOCAL' parse to match r224415.

Pointed out by Jim Grosbach.

llvm-svn: 224494

9 years agoUpdate for llvm front end change and use the TargetOptions struct
Eric Christopher [Thu, 18 Dec 2014 02:23:27 +0000 (02:23 +0000)]
Update for llvm front end change and use the TargetOptions struct
for ABI.

llvm-svn: 224493

9 years agoAdd a new string member to the TargetOptions struct for the name
Eric Christopher [Thu, 18 Dec 2014 02:20:58 +0000 (02:20 +0000)]
Add a new string member to the TargetOptions struct for the name
of the abi we should be using. For targets that don't use the
option there's no change, otherwise this allows external users
to set the ABI via string and avoid some of the -backend-option
pain in clang.

Use this option to move the ABI for the ARM port from the
Subtarget to the TargetMachine and update the testcases
accordingly since it's no longer valid to set via -mattr.

llvm-svn: 224492

9 years agoMake sure that arm-linux-gnu is still the apcs-gnu ABI when we
Eric Christopher [Thu, 18 Dec 2014 02:08:55 +0000 (02:08 +0000)]
Make sure that arm-linux-gnu is still the apcs-gnu ABI when we
use clang -cc1 matching the front end and backend. Fix up a couple
of tests that were testing aapcs for arm-linux-gnu.

The test that removes the aapcs abi calling convention removes
them because the default triple matches what the backend uses
for the calling convention there and so it doesn't need to be
explicitly stated - see the code in TargetInfo.cpp.

llvm-svn: 224491

9 years agoReinstate aapcs as the default arm abi.
Eric Christopher [Thu, 18 Dec 2014 02:08:51 +0000 (02:08 +0000)]
Reinstate aapcs as the default arm abi.

llvm-svn: 224490

9 years agoModel ARM backend ABI selection after the front end code doing the
Eric Christopher [Thu, 18 Dec 2014 02:08:45 +0000 (02:08 +0000)]
Model ARM backend ABI selection after the front end code doing the
same. This will change the "bare metal" ABI from APCS to AAPCS.

The only difference between the front and back end code is that
the code for Triple::GNU was added for environment. That will migrate
to the front end shortly.

Tests updated with the ABI they were originally testing in the case
of bare metal (e.g. -mtriple armv7) or with a -gnu for arm-linux
triples.

llvm-svn: 224489

9 years agoDo not define CRT_HAS_128BIT for MIPS64
Petar Jovanovic [Thu, 18 Dec 2014 01:21:33 +0000 (01:21 +0000)]
Do not define CRT_HAS_128BIT for MIPS64

Do not define it for MIPS64 until its backend supports it.
See the bug report [1] for more information.

[1] http://llvm.org/bugs/show_bug.cgi?id=20098

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

llvm-svn: 224488

9 years agoReapply "Linker: Drop superseded subprograms"
Duncan P. N. Exon Smith [Thu, 18 Dec 2014 01:05:33 +0000 (01:05 +0000)]
Reapply "Linker: Drop superseded subprograms"

This reverts commit r224416, reapplying r224389.  The buildbots hadn't
recovered after my revert, waiting until David reverted a couple of his
commits.  It looks like it was just bad timing (where we were both
modifying code related to the same assertion).  Trying again...

Here's the original text:

    When a function gets replaced by `ModuleLinker`, drop superseded
    subprograms.  This ensures that the "first" subprogram pointing at a
    function is the same one that `!dbg` references point at.

    This is a stop-gap fix for PR21910.  Notably, this fixes Release+Asserts
    bootstraps that are currently asserting out in
    `LexicalScopes::initialize()` due to the explicit instantiations in
    `lib/IR/Dominators.cpp` eventually getting replaced by -argpromotion.

llvm-svn: 224487

9 years agoIR: Make DICompositeType mutators private
Duncan P. N. Exon Smith [Thu, 18 Dec 2014 00:54:39 +0000 (00:54 +0000)]
IR: Make DICompositeType mutators private

Make `DICompositeType` mutators private to prevent misuse.  All calls to
`setArrays()` and `setContainingType()` should go through
`DIBuilder::replaceArrays()` and `DIBuilder::replaceVTableHolder()`.

This is a follow-up to r224482 (now that clang has been updated in
r224483).

llvm-svn: 224486