platform/upstream/llvm.git
9 years ago[OPENMP] Fixed incorrect work with cleanups, NFC.
Alexey Bataev [Tue, 5 May 2015 06:21:01 +0000 (06:21 +0000)]
[OPENMP] Fixed incorrect work with cleanups, NFC.

Destructors are never called for cleanups, so we can't use SmallVector as a member.
Differential Revision: http://reviews.llvm.org/D9399

llvm-svn: 236482

9 years agoRevert revision 236480: [OPENMP] Fixed incorrect work with cleanups, NFC.
Alexey Bataev [Tue, 5 May 2015 04:56:26 +0000 (04:56 +0000)]
Revert revision 236480: [OPENMP] Fixed incorrect work with cleanups, NFC.

Due to some incompatibilities with Windows.

llvm-svn: 236481

9 years ago[OPENMP] Fixed incorrect work with cleanups, NFC.
Alexey Bataev [Tue, 5 May 2015 04:42:07 +0000 (04:42 +0000)]
[OPENMP] Fixed incorrect work with cleanups, NFC.

Destructors are never called for cleanups, so we can't use SmallVector as a member.
Differential Revision: http://reviews.llvm.org/D9399

llvm-svn: 236480

9 years ago[OPENMP] Codegen for 'firstprivate' clause in 'task' directive.
Alexey Bataev [Tue, 5 May 2015 04:05:12 +0000 (04:05 +0000)]
[OPENMP] Codegen for 'firstprivate' clause in 'task' directive.

For tasks codegen for private/firstprivate variables are different rather than for other directives.

1. Build an internal structure of privates for each private variable:
struct .kmp_privates_t. {
  Ty1 var1;
  ...
  Tyn varn;
};
2. Add a new field to kmp_task_t type with list of privates.
struct kmp_task_t {
  void *              shareds;
  kmp_routine_entry_t routine;
  kmp_int32           part_id;
  kmp_routine_entry_t destructors;
  .kmp_privates_t.    privates;
};
3. Create a function with destructors calls for all privates after end of task region.
kmp_int32 .omp_task_destructor.(kmp_int32 gtid, kmp_task_t *tt) {
  ~Destructor(&tt->privates.var1);
  ...
  ~Destructor(&tt->privates.varn);
  return 0;
}
4. Perform initialization of all firstprivate fields (by simple copying for POD data, copy constructor calls for classes) + provide address of a destructor function after kmpc_omp_task_alloc() and before kmpc_omp_task() calls.
kmp_task_t *new_task = __kmpc_omp_task_alloc(ident_t *, kmp_int32 gtid, kmp_int32 flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, kmp_routine_entry_t *task_entry);

CopyConstructor(new_task->privates.var1, *new_task->shareds.var1_ref);
new_task->shareds.var1_ref = &new_task->privates.var1;
...
CopyConstructor(new_task->privates.varn, *new_task->shareds.varn_ref);
new_task->shareds.varn_ref = &new_task->privates.varn;

new_task->destructors = .omp_task_destructor.;
kmp_int32 __kmpc_omp_task(ident_t *, kmp_int32 gtid, kmp_task_t *new_task)
Differential Revision: http://reviews.llvm.org/D9370

llvm-svn: 236479

9 years agoFix an uninitialized memory use error when interpreting
Jason Molenda [Tue, 5 May 2015 02:05:53 +0000 (02:05 +0000)]
Fix an uninitialized memory use error when interpreting
compact unwind encodings for x86_64 / i386 omit-frame-pointer
code.  It was possible for lldb to get the location of saved
registers incorrect for some of these functions.
<rdar://problem/20753264>

llvm-svn: 236478

9 years agoAdd CommandObjectLanguage to the xcode project file.
Jason Molenda [Tue, 5 May 2015 02:03:37 +0000 (02:03 +0000)]
Add CommandObjectLanguage to the xcode project file.

llvm-svn: 236477

9 years ago[lib/Fuzzer] use handle_abort=1 by default so that when assert() fires we save the...
Kostya Serebryany [Tue, 5 May 2015 01:42:55 +0000 (01:42 +0000)]
[lib/Fuzzer] use handle_abort=1 by default so that when assert() fires we save the test case

llvm-svn: 236476

9 years ago[MS ABI] Cleanup selectBasePath
David Majnemer [Tue, 5 May 2015 01:39:20 +0000 (01:39 +0000)]
[MS ABI] Cleanup selectBasePath

Handle some common cases quickly when deeper introspection into the path
has no effect on the final result.

No functional change intended.

llvm-svn: 236475

9 years ago[asan] under handle_abort=1 option intercept SIGABRT in addition to SIGSEGV/SIGBUS...
Kostya Serebryany [Tue, 5 May 2015 01:37:33 +0000 (01:37 +0000)]
[asan] under handle_abort=1 option intercept SIGABRT in addition to SIGSEGV/SIGBUS. Among other things this will allow to set up a death callback for SIGABRT and thus properly handle assert() in lib/Fuzzer

llvm-svn: 236474

9 years ago[ValueObject::GetPointeeData] Get addr from value for eValueHostAddress values.
Siva Chandra [Tue, 5 May 2015 00:41:35 +0000 (00:41 +0000)]
[ValueObject::GetPointeeData] Get addr from value for eValueHostAddress values.

Summary:
After r236447, ValueObject::GetAddressOf returns LLDB_INVALID_ADDRESS
when the value type is eValueHostAddress. For such a case, clients of
GetAddressOf should get the address from the scalar part of the value
instead of using the value returned by GetAddressOf directly.

This change also makes ValueObject::GetAddressOf set the address type to
eAddressTypeHost for values of eValueHostAddress so that clients can
recognize that they need to fetch the address from the scalar part
of the value.

Test Plan: ninja check-lldb on linux

Reviewers: clayborg, ovyalov

Reviewed By: ovyalov

Subscribers: lldb-commits

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

llvm-svn: 236473

9 years ago[Orc] Revert r236465 - It broke the Windows bots.
Lang Hames [Mon, 4 May 2015 23:30:01 +0000 (23:30 +0000)]
[Orc] Revert r236465 - It broke the Windows bots.

Looks like the usual missing explicit move-constructor issue with MSVC. I should
have a fix shortly.

llvm-svn: 236472

9 years ago[X86] Fix assertion while DAG combining offsets and ExternalSymbols
Reid Kleckner [Mon, 4 May 2015 23:22:36 +0000 (23:22 +0000)]
[X86] Fix assertion while DAG combining offsets and ExternalSymbols

ExternalSymbol nodes do not contain offsets, unlike GlobalValue nodes.

llvm-svn: 236471

9 years ago[ARM] IT block insertion needs to update kill flags
Pete Cooper [Mon, 4 May 2015 22:44:47 +0000 (22:44 +0000)]
[ARM] IT block insertion needs to update kill flags

When forming an IT block from the first MOV here:

%R2<def> = t2MOVr %R0, pred:1, pred:%CPSR, opt:%noreg
%R3<def> = tMOVr %R0<kill>, pred:14, pred:%noreg

the move in to R3 is moved out of the IT block so that later instructions on the same predicate can be inside this block, and we can share the IT instruction.

However, when moving the R3 copy out of the IT block, we need to clear its kill flags for anything in use at this point in time, ie, R0 here.

This appeases the machine verifier which thought that R0 wasn't defined when used.

I have a test case, but its extremely register allocator specific.  It would be too fragile to commit a test which depends on the register allocator here.

llvm-svn: 236468

9 years agoAdd TransformUtils dependency to lli.
Pete Cooper [Mon, 4 May 2015 22:33:39 +0000 (22:33 +0000)]
Add TransformUtils dependency to lli.

After r236465, Orc uses ValueMaterializer and so needs to link against TransformUtils to get the ValueMaterializer::anchor().

llvm-svn: 236467

9 years agoFix buffer overflow in Lexer
Kostya Serebryany [Mon, 4 May 2015 22:30:29 +0000 (22:30 +0000)]
Fix buffer overflow in Lexer

Summary:
Fix PR22407, where the Lexer overflows the buffer when parsing
 #include<\
(end of file after slash)

Test Plan:
Added a test that will trigger in asan build.
This case is also covered by the clang-fuzzer bot.

Reviewers: rnk

Reviewed By: rnk

Subscribers: cfe-commits

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

llvm-svn: 236466

9 years ago[Orc] Refactor the compile-on-demand layer to make module partitioning lazy,
Lang Hames [Mon, 4 May 2015 22:03:10 +0000 (22:03 +0000)]
[Orc] Refactor the compile-on-demand layer to make module partitioning lazy,
and avoid cloning unused decls into every partition.

Module partitioning showed up as a source of significant overhead when I
profiled some trivial test cases. Avoiding the overhead of partitionging
for uncalled functions helps to mitigate this.

This change also means that it is no longer necessary to have a
LazyEmittingLayer underneath the CompileOnDemand layer, since the
CompileOnDemandLayer will not extract or emit function bodies until they are
called.

llvm-svn: 236465

9 years agoVim: Fix some bugs in llvm indent plugin.
Matthias Braun [Mon, 4 May 2015 21:41:25 +0000 (21:41 +0000)]
Vim: Fix some bugs in llvm indent plugin.

llvm-svn: 236464

9 years agoVim: Set filetype=python for lit configuration files.
Matthias Braun [Mon, 4 May 2015 21:41:23 +0000 (21:41 +0000)]
Vim: Set filetype=python for lit configuration files.

llvm-svn: 236463

9 years agoDocument some of the options in test/lit.cfg
Matthias Braun [Mon, 4 May 2015 21:37:00 +0000 (21:37 +0000)]
Document some of the options in test/lit.cfg

llvm-svn: 236462

9 years agoLit: Allow overriding llvm tool paths+arguments, make -D an alias for --param
Matthias Braun [Mon, 4 May 2015 21:36:36 +0000 (21:36 +0000)]
Lit: Allow overriding llvm tool paths+arguments, make -D an alias for --param

These changes allow usages where you want to pass an additional
commandline option to all invocations of a specific llvm tool. Example:

> llvm-lit -Dllc=llc -enable-misched -verify-machineinstrs

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

llvm-svn: 236461

9 years agozap windows line endings; NFC
Sanjay Patel [Mon, 4 May 2015 21:27:27 +0000 (21:27 +0000)]
zap windows line endings; NFC

llvm-svn: 236460

9 years ago[clang-fuzzer] make clang-fuzzer slightly faster by removing one redundant directory...
Kostya Serebryany [Mon, 4 May 2015 21:14:45 +0000 (21:14 +0000)]
[clang-fuzzer] make clang-fuzzer slightly faster by removing one redundant directory scan

llvm-svn: 236459

9 years agoUpdate MSVC compatibility doc note about exceptions
Reid Kleckner [Mon, 4 May 2015 20:53:51 +0000 (20:53 +0000)]
Update MSVC compatibility doc note about exceptions

llvm-svn: 236458

9 years agoCodeGen: match up correct insertvalue indices when assessing tail calls.
Tim Northover [Mon, 4 May 2015 20:41:51 +0000 (20:41 +0000)]
CodeGen: match up correct insertvalue indices when assessing tail calls.

When deciding whether a value comes from the aggregate or inserted value of an
insertvalue instruction, we compare the indices against those of the location
we're interested in. One of the lists needs reversing because the input data is
backwards (so that modifications take place at the end of the SmallVector), but
we were reversing both before leading to incorrect results.

Should fix PR23408

llvm-svn: 236457

9 years agoYAML: Add an optional 'flow' field to the mapping trait to allow flow mapping output.
Alex Lorenz [Mon, 4 May 2015 20:11:40 +0000 (20:11 +0000)]
YAML: Add an optional 'flow' field to the mapping trait to allow flow mapping output.

This patch adds an optional 'flow' field to the MappingTrait
class so that yaml IO will be able to output flow mappings.

Reviewers: Justin Bogner

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

llvm-svn: 236456

9 years agoRespect object format choice on Darwin
Keno Fischer [Mon, 4 May 2015 20:03:01 +0000 (20:03 +0000)]
Respect object format choice on Darwin

Summary:
The object format can be set to something other than MachO, e.g.
to use ELF-on-Darwin for MCJIT. This already works on Windows, so
there's no reason it shouldn't on Darwin.

Reviewers: lhames, grosbach

Subscribers: rafael, grosbach, t.p.northover, llvm-commits

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

llvm-svn: 236455

9 years ago[modules] Don't bother registering loaded macros if there are none.
Richard Smith [Mon, 4 May 2015 19:58:00 +0000 (19:58 +0000)]
[modules] Don't bother registering loaded macros if there are none.

We don't yet have a reduced testcase for this.

llvm-svn: 236454

9 years agoR600: Add fma and ldexp asic specific feature macros
Jan Vesely [Mon, 4 May 2015 19:53:36 +0000 (19:53 +0000)]
R600: Add fma and ldexp asic specific feature macros

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 236453

9 years ago[ValueObject] Do not return address of eValueTypeHostAddress values.
Siva Chandra [Mon, 4 May 2015 19:43:34 +0000 (19:43 +0000)]
[ValueObject] Do not return address of eValueTypeHostAddress values.

Summary:
This fixes TestRegisterVariables for clang and hence it is enabled in this commit.

Test Plan: dotest.py -C clang -p TestRegisterVariables

Reviewers: clayborg

Reviewed By: clayborg

Subscribers: lldb-commits

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

llvm-svn: 236447

9 years agoFix Windows coverage test with lit shell
Reid Kleckner [Mon, 4 May 2015 19:41:58 +0000 (19:41 +0000)]
Fix Windows coverage test with lit shell

llvm-svn: 236446

9 years ago[MS ABI] Fix a crash in vptr path calculation
David Majnemer [Mon, 4 May 2015 18:47:54 +0000 (18:47 +0000)]
[MS ABI] Fix a crash in vptr path calculation

I discovered a case where the old algorithm would crash.  Instead of
trying to patch the algorithm, rewrite it.  The new algorithm operates
in three phases:
1. Find all paths to the subobject with the vptr.
2. Remove paths which are subsets of other paths.
3. Select the best path where 'best' is defined as introducing the most
   covariant overriders.  If two paths introduce different overriders,
   raise a diagnostic.

llvm-svn: 236444

9 years agoAdd language command and LanguageRuntime plugin changes to allow vending of command...
Colin Riley [Mon, 4 May 2015 18:39:38 +0000 (18:39 +0000)]
Add language command and LanguageRuntime plugin changes to allow vending of command objects.

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

llvm-svn: 236443

9 years agoFix -Wmicrosoft warning by making enum unsigned
Reid Kleckner [Mon, 4 May 2015 18:21:35 +0000 (18:21 +0000)]
Fix -Wmicrosoft warning by making enum unsigned

llvm-svn: 236436

9 years ago[IR/Diagnostic] Assert that DebugLoc is valid before accessing.
Davide Italiano [Mon, 4 May 2015 18:08:35 +0000 (18:08 +0000)]
[IR/Diagnostic] Assert that DebugLoc is valid before accessing.

PR: 23380
Differential Revision: http://reviews.llvm.org/D9464
Reviewed by: dexonsmith

llvm-svn: 236435

9 years agoOption parsing: properly handle flag aliases for joined options (PR23394)
Hans Wennborg [Mon, 4 May 2015 18:00:13 +0000 (18:00 +0000)]
Option parsing: properly handle flag aliases for joined options (PR23394)

A joined option always needs to have an argument, even if it's an empty one.

Clang would previously assert when trying to use --extra-warnings, which is
a flag alias for -W, which is a joined option.

llvm-svn: 236434

9 years ago[SystemZ] Reclassify f32 subregs of f64 registers
Ulrich Weigand [Mon, 4 May 2015 17:41:22 +0000 (17:41 +0000)]
[SystemZ] Reclassify f32 subregs of f64 registers

At the moment, all subregs defined by the SystemZ target can be modified
independently of the wider register.  E.g. writing to a GR32 does not
change the upper 32 bits of the GR64.  Writing to an FP32 does not change
the lower 32 bits of the FP64.

Hoewver, the upcoming support for the vector extension redefines FP64 as
one half of a V128.  Floating-point operations leave the other half of
a V128 in an unpredictable state, so it's no longer the case that writing
to an FP32 leaves the bits of the underlying register (the V128) alone.
I'd prefer to have separate subreg_ names for this situation, so that
it's obvious at a glance whether we're talking about a subreg that leaves
the other parts of the register alone.

No behavioral change intended.

Patch originally by Richard Sandiford.

llvm-svn: 236433

9 years ago[SystemZ] Clean up AsmParser isMem() handling
Ulrich Weigand [Mon, 4 May 2015 17:40:53 +0000 (17:40 +0000)]
[SystemZ] Clean up AsmParser isMem() handling

We know what MemoryKind an operand has at the time we construct it,
so we might as well just record it in an unused part of the structure.
This makes it easier to add scatter/gather addresses later.

No behavioral change intended.

Patch originally by Richard Sandiford.

llvm-svn: 236432

9 years agoGet rid of compiler warning.
Serge Pavlov [Mon, 4 May 2015 17:39:55 +0000 (17:39 +0000)]
Get rid of compiler warning.

llvm-svn: 236431

9 years ago[SystemZ] Fix getTargetNodeName
Ulrich Weigand [Mon, 4 May 2015 17:39:40 +0000 (17:39 +0000)]
[SystemZ] Fix getTargetNodeName

It seems SystemZTargetLowering::getTargetNodeName got out of sync with
some recent changes to the SystemZISD opcode list.  Add back all the
missing opcodes (and re-sort to the same order as SystemISelLowering.h).

llvm-svn: 236430

9 years agoFix a typo in the warning.
Jim Ingham [Mon, 4 May 2015 17:33:33 +0000 (17:33 +0000)]
Fix a typo in the warning.

<rdar://problem/20799707>

llvm-svn: 236429

9 years agoScheduleDAGInstrs should toggle kill flags on bundled instrs.
Pete Cooper [Mon, 4 May 2015 16:52:06 +0000 (16:52 +0000)]
ScheduleDAGInstrs should toggle kill flags on bundled instrs.

ScheduleDAGInstrs wasn't setting or clearing the kill flags on instructions inside bundles.  This led to code such as this

%R3<def> = t2ANDrr %R0
BUNDLE %ITSTATE<imp-def,dead>, %R0<imp-use,kill>
  t2IT 1, 24, %ITSTATE<imp-def>
  R6<def,tied6> = t2ORRrr %R0<kill>, ...

being transformed to

BUNDLE %ITSTATE<imp-def,dead>, %R0<imp-use>
  t2IT 1, 24, %ITSTATE<imp-def>
  R6<def,tied6> = t2ORRrr %R0<kill>, ...
%R3<def> = t2ANDrr %R0<kill>

where the kill flag was removed from the BUNDLE instruction, but not the t2ORRrr inside it.  The verifier then thought that
R0 was undefined when read by the AND.

This change make the toggleKillFlags method also check for bundles and toggle flags on bundled instructions.
Setting the kill flag is special cased as we only want to set the kill flag on the last instruction in the bundle.

llvm-svn: 236428

9 years agoR600/SI: Code cleanup
Tom Stellard [Mon, 4 May 2015 16:45:08 +0000 (16:45 +0000)]
R600/SI: Code cleanup

This is a follow-up to r236004

llvm-svn: 236427

9 years agoInstantiate incomplete class used in template method.
Serge Pavlov [Mon, 4 May 2015 16:44:39 +0000 (16:44 +0000)]
Instantiate incomplete class used in template method.

If a class is absent from instantiation and is incomplete, instantiate it as
an incomplete class thus avoiding compiler crash.

This change fixes PR18653.

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

llvm-svn: 236426

9 years agoMark TestTypedefArray as XFAIL with Gcc.
Oleksiy Vyalov [Mon, 4 May 2015 15:20:25 +0000 (15:20 +0000)]
Mark TestTypedefArray as XFAIL with Gcc.

llvm-svn: 236425

9 years agoReapply "Frontend: Stop leaking when not -disable-free"
Duncan P. N. Exon Smith [Mon, 4 May 2015 14:59:20 +0000 (14:59 +0000)]
Reapply "Frontend: Stop leaking when not -disable-free"

This reverts commit r236422, effectively reapplying r236419.  ASan
helped me diagnose the problem: the non-leaking logic would free the
ASTConsumer before freeing Sema whenever `isCurrentASTFile()`, causing a
use-after-free in `Sema::~Sema()`.

This version unconditionally frees Sema and the ASTContext before
freeing the ASTConsumer.  Without the fix, these were either being freed
before the ASTConsumer was freed or leaked after, but they were always
spiritually released so this isn't really a functionality change.

I ran all of check-clang with ASan locally this time, so I'm hoping
there aren't any more problems lurking.

Original commit message:

    Try again to plug a leak that's been around since at least r128011
    after coming across the FIXME.  Nico Weber tried something similar
    in r207065 but had to revert in r207070 due to a bot failure.

    The build failure isn't visible anymore so I'm not sure what went
    wrong.  I'm doing this slightly differently -- when not
    -disable-free I'm still resetting the members (just not leaking
    them) -- so maybe it will work out this time?  Tests pass locally,
    anyway.

llvm-svn: 236424

9 years ago[analyzer] scan-build: support spaces in compiler path and arguments.
Anton Yartsev [Mon, 4 May 2015 13:37:36 +0000 (13:37 +0000)]
[analyzer] scan-build: support spaces in compiler path and arguments.

This fixes errors that occur if a path to the default compiler has spaces or if an argument with spaces is given to compiler (e.g. via -I). (http://reviews.llvm.org/D9357)

llvm-svn: 236423

9 years agoRevert "Frontend: Stop leaking when not -disable-free"
Duncan P. N. Exon Smith [Mon, 4 May 2015 13:01:42 +0000 (13:01 +0000)]
Revert "Frontend: Stop leaking when not -disable-free"

This reverts commit r236419, since it caused some bots to fail.  On:

http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/26124
http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/35086

these tests:

FAIL: Clang::import-decl.cpp
FAIL: Clang::floating-literal.c
FAIL: Clang::x86_64-linux-android.c

fail with this output:

Command Output (stderr):
--
Stack dump:
0.  Program arguments: /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/Release+Asserts/bin/clang -cc1 -internal-isystem /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/Release+Asserts/bin/../lib/clang/3.7.0/include -nostdsysteminc -ast-print -x ast -
/var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/tools/clang/test/Modules/Output/import-decl.cpp.script: line 3:  9665 Segmentation fault      (core dumped) /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/Release+Asserts/bin/clang -cc1 -internal-isystem /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/Release+Asserts/bin/../lib/clang/3.7.0/include -nostdsysteminc -ast-print -x ast - < /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/tools/clang/test/Modules/Output/import-decl.cpp.tmp.ast
      9666 Done                    | /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.obj/Release+Asserts/bin/FileCheck /var/lib/buildbot/slaves/hexagon-build-03/clang-hexagon-elf/llvm.src/tools/clang/test/Modules/import-decl.cpp

--

llvm-svn: 236422

9 years agoAVX-512: added a test for encoding
Elena Demikhovsky [Mon, 4 May 2015 12:59:15 +0000 (12:59 +0000)]
AVX-512: added a test for encoding
by Asaf Badouh (asaf.badouh@intel.com)

llvm-svn: 236421

9 years agoAVX-512: added calling convention for i1 vectors in 32-bit mode.
Elena Demikhovsky [Mon, 4 May 2015 12:40:50 +0000 (12:40 +0000)]
AVX-512: added calling convention for i1 vectors in 32-bit mode.
Fixed some bugs in extend/truncate for AVX-512 target.
Removed VBROADCASTM (masked broadcast) node, since it is not used any more.

llvm-svn: 236420

9 years agoFrontend: Stop leaking when not -disable-free
Duncan P. N. Exon Smith [Mon, 4 May 2015 12:36:56 +0000 (12:36 +0000)]
Frontend: Stop leaking when not -disable-free

Try again to plug a leak that's been around since at least r128011 after
coming across the FIXME.  Nico Weber tried something similar in r207065
but had to revert in r207070 due to a bot failure.

The build failure isn't visible anymore so I'm not sure what went wrong.
I'm doing this slightly differently -- when not -disable-free I'm still
resetting the members (just not leaking them) -- so maybe it will work
out this time?  Tests pass locally, anyway.

llvm-svn: 236419

9 years agoAVX-512: added integer "add" and "sub" instructions with saturation for SKX
Elena Demikhovsky [Mon, 4 May 2015 12:35:55 +0000 (12:35 +0000)]
AVX-512: added integer "add" and "sub" instructions with saturation for SKX
with intrinsics and tests

by Asaf Badouh (asaf.badouh@intel.com)

llvm-svn: 236418

9 years agoAVX-512: enabled tests for AVX512F set
Elena Demikhovsky [Mon, 4 May 2015 11:09:41 +0000 (11:09 +0000)]
AVX-512: enabled tests for AVX512F set

llvm-svn: 236416

9 years agoclang-format: NFC: Delete FormatToken::IsForEachMacro. Use a TokenType instead.
Daniel Jasper [Mon, 4 May 2015 09:22:29 +0000 (09:22 +0000)]
clang-format: NFC: Delete FormatToken::IsForEachMacro. Use a TokenType instead.

llvm-svn: 236415

9 years agoAVX-512: Added VPACK* instructions forms for KNL and SKX
Elena Demikhovsky [Mon, 4 May 2015 09:14:02 +0000 (09:14 +0000)]
AVX-512: Added VPACK* instructions forms for KNL and SKX
and their intrinsics
by Asaf Badouh (asaf.badouh@intel.com)

llvm-svn: 236414

9 years agoclang-format: NFC: Use default member initializers and other cleanups.
Daniel Jasper [Mon, 4 May 2015 08:51:40 +0000 (08:51 +0000)]
clang-format: NFC: Use default member initializers and other cleanups.

llvm-svn: 236413

9 years agoclang-format: Force aligning different brackets relative to each other.
Daniel Jasper [Mon, 4 May 2015 07:39:00 +0000 (07:39 +0000)]
clang-format: Force aligning different brackets relative to each other.

Before:
  void SomeFunction(vector< // break
      int> v);

After:
  void SomeFunction(vector< // break
                        int> v);

llvm-svn: 236412

9 years ago[LLDB][MIPS] Emulate instruction using MCDisassembler
Mohit K. Bhakkad [Mon, 4 May 2015 06:28:04 +0000 (06:28 +0000)]
[LLDB][MIPS] Emulate instruction using MCDisassembler
Patch by Jaydeep Patil

EmulateInstructionMIPS64 has been modified to use llvm::MCDisassembler instead of duplicating the decoding logic.
Added emulation of few branch instructions for software single stepping

Reviewers: clayborg, jasonmolenda
Subscribers: bhushan, mohit.bhakkad, sagar, lldb-commits.
Differential Revision: http://reviews.llvm.org/D9319

llvm-svn: 236411

9 years agoTestCModules - fixed for gcc
Vince Harron [Mon, 4 May 2015 06:26:13 +0000 (06:26 +0000)]
TestCModules - fixed for gcc

Changed restrict keyword to something understood by gcc

llvm-svn: 236410

9 years agoReplace windows_error calls with mapWindowsError.
Yaron Keren [Mon, 4 May 2015 04:48:10 +0000 (04:48 +0000)]
Replace windows_error calls with mapWindowsError.

After r210687, windows_error does nothing but call mapWindowsError.
Other Windows/*.inc files directly call mapWindowsError. This patch
updates Path.inc and Process.inc to do the same.

llvm-svn: 236409

9 years agollvm-cov: Warn if object file is newer than profile
Justin Bogner [Mon, 4 May 2015 04:09:38 +0000 (04:09 +0000)]
llvm-cov: Warn if object file is newer than profile

Looking at coverage with an out of date profile can be confusing.
Provide a little hint that something might be wrong.

llvm-svn: 236408

9 years agoXFAILing a test that fails with gcc 4.9 x86_64
Vince Harron [Mon, 4 May 2015 03:53:22 +0000 (03:53 +0000)]
XFAILing a test that fails with gcc 4.9 x86_64

llvm-svn: 236407

9 years agoMention PPCallbacks interface change in release notes.
Richard Smith [Mon, 4 May 2015 03:18:47 +0000 (03:18 +0000)]
Mention PPCallbacks interface change in release notes.

llvm-svn: 236406

9 years agoUpdate to match clang r236404.
Richard Smith [Mon, 4 May 2015 03:15:55 +0000 (03:15 +0000)]
Update to match clang r236404.

llvm-svn: 236405

9 years agoSwitch PPCallbacks to take the new MacroDefinition instead of MacroDirective*, in...
Richard Smith [Mon, 4 May 2015 03:15:40 +0000 (03:15 +0000)]
Switch PPCallbacks to take the new MacroDefinition instead of MacroDirective*, in order to preserve full information on module macro expansion.

llvm-svn: 236404

9 years agoun-skipped a bunch of tests on Linux
Vince Harron [Mon, 4 May 2015 03:06:04 +0000 (03:06 +0000)]
un-skipped a bunch of tests on Linux

Some have been marked as skipIfLinux for years.
The seem to be passing so I've enabled them.

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

llvm-svn: 236403

9 years agoFixed skipIfLinuxClang to check the target architecture
Vince Harron [Mon, 4 May 2015 02:59:19 +0000 (02:59 +0000)]
Fixed skipIfLinuxClang to check the target architecture

Instead of the host architecture

This decorator isn't in use anywhere currently.
Add it to a test and run

llvm-svn: 236402

9 years agoEnabled libc++ formatter tests on Linux
Vince Harron [Mon, 4 May 2015 02:56:32 +0000 (02:56 +0000)]
Enabled libc++ formatter tests on Linux

Refactored TestInitializerList to not be an inline test.
Refactored Makefiles to use USE_LIBCPP instead of adding FLAGS directly
Fixed copy/paste error in TestDataFormatterUnordered class name

Differenttial Revision: http://reviews.llvm.org/D9426

llvm-svn: 236401

9 years agoRename MacroDefinition -> MacroDefinitionRecord, Preprocessor::MacroDefinition -...
Richard Smith [Mon, 4 May 2015 02:25:31 +0000 (02:25 +0000)]
Rename MacroDefinition -> MacroDefinitionRecord, Preprocessor::MacroDefinition -> MacroDefinition.

clang::MacroDefinition now models the currently-defined value of a macro. The
previous MacroDefinition type, which represented a record of a macro definition
directive for a detailed preprocessing record, is now called MacroDefinitionRecord.

llvm-svn: 236400

9 years agoDeprecate in-source autotools builds
Jonathan Roelofs [Mon, 4 May 2015 02:04:54 +0000 (02:04 +0000)]
Deprecate in-source autotools builds

This is a followup from:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150323/268067.html

Upgrade instructions:
  $ mv llvm/include/llvm/Config/config.h ./config.h.BACKUP
  # copy the configure line from line 7 of llvm/config.log
  # (for example: `$ ./configure --no-create --no-recursion`)
  $ mkdir build
  $ cd build
  # run the configure line, but this time with '../llvm' at the beginning:
  $ ../llvm/configure --no-create --no-recursion

These warnings will soon be turned into hard errors after a week.  Speak up now
if this is going to be a problem for you.

llvm-svn: 236399

9 years ago[TableGen] Replace 'static_cast' with 'cast'.
Craig Topper [Mon, 4 May 2015 01:35:42 +0000 (01:35 +0000)]
[TableGen] Replace 'static_cast' with 'cast'.

llvm-svn: 236398

9 years ago[TableGen] Formatting cleanup. Mostly removing trailing whitespace and unnecessary...
Craig Topper [Mon, 4 May 2015 01:35:39 +0000 (01:35 +0000)]
[TableGen] Formatting cleanup. Mostly removing trailing whitespace and unnecessary curly braces. NFC

llvm-svn: 236397

9 years agoTestMultithreaded improvements
Vince Harron [Mon, 4 May 2015 00:17:53 +0000 (00:17 +0000)]
TestMultithreaded improvements

These tests link against host lldb API. Compiler's target triple
must match liblldb triple. Instead of naively skipping i386, I added
a check of the liblldb arch against the compiler target arch.

This is useful for 32 bit API builds (planned for Windows)

Since remote is disabled, we can assume the os is the same.

Also, removed skipIfLinuxClang because it's passing

llvm-svn: 236396

9 years ago[FIX] Invalid recognition of multidimensional access
Johannes Doerfert [Sun, 3 May 2015 16:03:01 +0000 (16:03 +0000)]
[FIX] Invalid recognition of multidimensional access

  In the lnt benchmark MultiSource/Benchmarks/MallocBench/gs/gs with
  scalar and PHI modeling we detected the multidimensional accesses
  with sizes variant in the SCoP. This will check the sizes for validity.

llvm-svn: 236395

9 years agoMasked gather and scatter intrinsics - enabled codegen for KNL.
Elena Demikhovsky [Sun, 3 May 2015 07:12:25 +0000 (07:12 +0000)]
Masked gather and scatter intrinsics - enabled codegen for KNL.

llvm-svn: 236394

9 years agoAdding debug location information to Polly's JSCOP and dot exports
Tobias Grosser [Sun, 3 May 2015 05:21:36 +0000 (05:21 +0000)]
Adding debug location information to Polly's JSCOP and dot exports

This change adds location information for the detected regions in Polly when the
required debug information is available.

The JSCOP output format is extended with a "location" field which contains the
information in the format "source.c:start-end"

The dot output is extended to contain the location information for each nested
region in the analyzed function.

As part of this change, the existing getDebugLocation function has been moved
into lib/Support/ScopLocation.cpp to avoid having to include
polly/ScopDetectionDiagnostics.h.

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

Contributed-by: Roal Jordans <r.jordans@tue.nl>
llvm-svn: 236393

9 years agoFix typo in comment.
Nico Weber [Sat, 2 May 2015 21:34:39 +0000 (21:34 +0000)]
Fix typo in comment.

llvm-svn: 236392

9 years ago[Mips] Add more checkings to the test
Simon Atanasyan [Sat, 2 May 2015 21:03:00 +0000 (21:03 +0000)]
[Mips] Add more checkings to the test

No functional changes.

llvm-svn: 236391

9 years agoclang-format function definition header. NFC.
Yaron Keren [Sat, 2 May 2015 19:29:29 +0000 (19:29 +0000)]
clang-format function definition header. NFC.

llvm-svn: 236390

9 years agoReplace GetNumBytesInBuffer() in MicrosoftCXXNameMangler::mangleArgumentType by tell().
Yaron Keren [Sat, 2 May 2015 15:31:08 +0000 (15:31 +0000)]
Replace GetNumBytesInBuffer() in MicrosoftCXXNameMangler::mangleArgumentType by tell().

Using GetNumBytesInBuffer() assumes that the stream was not flushed between
the GetNumBytesInBuffer() calls, which may happen to be true or not,
depending on stream policy. tell() always reports the correct stream location.

Do note there are only two more uses of GetNumBytesInBuffer() in LLVM+clang, in
lib/MC/MCAsmStreamer.cpp and lib/Target/R600/InstPrinter/AMDGPUInstPrinter.cpp.
The former may be replacable by tell (needs testing) but while the later can
not be immediatly replaced by tell() as it uses the absolute value of
GetNumBytesInBuffer() rather than the real stream position. Both uses seems
to depend upon flush policy and thus may not work correctly depending upon the
stream behaviour.

Going forward, GetNumBytesInBuffer() should probably be protected, non-accessible
to raw_ostream clients.

llvm-svn: 236389

9 years ago[SSE2] Minor tidyup of v16i8 SHL lowering. NFC.
Simon Pilgrim [Sat, 2 May 2015 14:42:43 +0000 (14:42 +0000)]
[SSE2] Minor tidyup of v16i8 SHL lowering. NFC.

Removed code that was replicating v8i16 'shift + mask' implementation that is done more nicely by making use of LowerScalarImmediateShift

llvm-svn: 236388

9 years ago[DAGCombiner] Enabled vector float/double -> int constant folding
Simon Pilgrim [Sat, 2 May 2015 13:04:07 +0000 (13:04 +0000)]
[DAGCombiner] Enabled vector float/double -> int constant folding

llvm-svn: 236387

9 years agoLine ending fix
Simon Pilgrim [Sat, 2 May 2015 11:50:47 +0000 (11:50 +0000)]
Line ending fix

llvm-svn: 236386

9 years ago[SSE] Added vector int (i32 and i64) -> float/double conversion tests
Simon Pilgrim [Sat, 2 May 2015 11:42:47 +0000 (11:42 +0000)]
[SSE] Added vector int (i32 and i64) -> float/double conversion tests

llvm-svn: 236385

9 years ago[SSE] Added vector float/double -> i32 and i64 conversion tests
Simon Pilgrim [Sat, 2 May 2015 11:18:47 +0000 (11:18 +0000)]
[SSE] Added vector float/double -> i32 and i64 conversion tests

llvm-svn: 236384

9 years agoclang-format: [JS] Fix calculation of template string width.
Daniel Jasper [Sat, 2 May 2015 08:05:38 +0000 (08:05 +0000)]
clang-format: [JS] Fix calculation of template string width.

OriginalColumn might not be set, so fall back to Location and SourceMgr
in case it is missing. Also initialize end column in case the token is
multi line, but it's the ` token itself that starts the multi line.

Patch by Martin Probst, thank you!

llvm-svn: 236383

9 years agoclang-format: [JS] Fix templated parameter default values.
Daniel Jasper [Sat, 2 May 2015 07:54:58 +0000 (07:54 +0000)]
clang-format: [JS] Fix templated parameter default values.

Parameters can have templated types and default values (= ...), which is
another location in which a template closer should be followed by
whitespace.

Patch by Martin Probst, thank you.

llvm-svn: 236382

9 years ago[MS ABI] Add testcase which was missing from r236354
David Majnemer [Sat, 2 May 2015 05:12:53 +0000 (05:12 +0000)]
[MS ABI] Add testcase which was missing from r236354

This test verifies that we can detect when the inheritance paths are
ambiguous due to covariant thunks, ensuring we don't regress PR16759.

llvm-svn: 236381

9 years agoInstrProf: Cede ownership of createProfileWeights to CGF
Justin Bogner [Sat, 2 May 2015 05:00:55 +0000 (05:00 +0000)]
InstrProf: Cede ownership of createProfileWeights to CGF

The fact that PGO has a say in how these branch weights are determined
isn't interesting to most of CodeGen, so it makes more sense for this
API to be accessible via CodeGenFunction rather than CodeGenPGO.

llvm-svn: 236380

9 years agoDebugInfo: Use low_pc relative debug_ranges under fission when the CU has a low_pc
David Blaikie [Sat, 2 May 2015 02:31:49 +0000 (02:31 +0000)]
DebugInfo: Use low_pc relative debug_ranges under fission when the CU has a low_pc

Seems we were setting the base address on the wrong DwarfCompileUnit
object so it wasn't being used when generating the ranges.

llvm-svn: 236377

9 years ago[modules] Remove dead code from Module for tracking macro import locations.
Richard Smith [Sat, 2 May 2015 02:08:26 +0000 (02:08 +0000)]
[modules] Remove dead code from Module for tracking macro import locations.

llvm-svn: 236376

9 years ago[modules] Don't bother creating a ModuleMacro representing a #undef that overrides...
Richard Smith [Sat, 2 May 2015 01:14:40 +0000 (01:14 +0000)]
[modules] Don't bother creating a ModuleMacro representing a #undef that overrides nothing.

llvm-svn: 236374

9 years agoRework test to use FileCheck by making sure we have no xmm registers
Eric Christopher [Sat, 2 May 2015 01:06:17 +0000 (01:06 +0000)]
Rework test to use FileCheck by making sure we have no xmm registers
with numbers.

llvm-svn: 236373

9 years agoFix -fobjc-arc doesn't work with -save-temps
Steven Wu [Sat, 2 May 2015 00:56:15 +0000 (00:56 +0000)]
Fix -fobjc-arc doesn't work with -save-temps

The underlying problem is that there is currently no way to run
ObjCARCContract from llvm bitcode which is required by ObjC ARC.
This fix the problem by always enable ObjCARCContract pass if
optimization is enabled. The ObjCARC Contract pass has almost no
overhead on code that is not using ARC.

llvm-svn: 236372

9 years agoDiagnose delayed typos when parsing a postfix expression with an
Kaelyn Takata [Sat, 2 May 2015 00:49:18 +0000 (00:49 +0000)]
Diagnose delayed typos when parsing a postfix expression with an
unmatched l_paren before setting the LHS to ExprError().

Fixes PR23285.

llvm-svn: 236371

9 years agoInstrProf: Use a locally tracked current count in ComputeRegionCounts
Justin Bogner [Sat, 2 May 2015 00:48:27 +0000 (00:48 +0000)]
InstrProf: Use a locally tracked current count in ComputeRegionCounts

No functional change. This just makes it more obvious that the logic
in ComputeRegionCounts only depends on the counter map and local
state.

llvm-svn: 236370

9 years ago[modules] If a module #includes a modular header that #undef's its macro, it
Richard Smith [Sat, 2 May 2015 00:45:56 +0000 (00:45 +0000)]
[modules] If a module #includes a modular header that #undef's its macro, it
should not export the macro.

... at least, not unless we have local submodule visibility enabled.

llvm-svn: 236369

9 years agoMC: Tidy up comments and clean up formatting a bit. NFC.
Jim Grosbach [Sat, 2 May 2015 00:44:14 +0000 (00:44 +0000)]
MC: Tidy up comments and clean up formatting a bit. NFC.

llvm-svn: 236368

9 years agoFix spelling.
Jim Grosbach [Sat, 2 May 2015 00:44:07 +0000 (00:44 +0000)]
Fix spelling.

llvm-svn: 236367

9 years agoMark the other test of TestFdLeak also as xfail to keep the bot green.
Siva Chandra [Sat, 2 May 2015 00:37:12 +0000 (00:37 +0000)]
Mark the other test of TestFdLeak also as xfail to keep the bot green.

Summary:
r235916 marked only one of the tests as xfail, but the other also has
been failing intermitantly on the buildbot.

Reviewers: chaoren

Reviewed By: chaoren

Subscribers: lldb-commits

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

llvm-svn: 236366

9 years agoInstrProf: Replace the RegionCounter class with a simpler direct approach
Justin Bogner [Fri, 1 May 2015 23:41:09 +0000 (23:41 +0000)]
InstrProf: Replace the RegionCounter class with a simpler direct approach

This removes the RegionCounter class, which is only used as a helper
in teh ComputeRegionCounts stmt visitor. This class is just an extra
layer of abstraction that makes the code harder to follow at this
point, and removing it makes the logic quite a bit more direct.

llvm-svn: 236364