platform/upstream/llvm.git
9 years agoModify dosep.py to add default session dir parameter
Vince Harron [Thu, 21 May 2015 18:15:09 +0000 (18:15 +0000)]
Modify dosep.py to add default session dir parameter

This ensures that all spawned dotest instances store their traces
in the same location.

Test Plan:
run dosep.py with and without a -s option for dotest

cd lldb/test
./dosep.py
./dosep.py -o '-s /tmp/traces'

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

llvm-svn: 237923

9 years ago[TestBuiltinTrap] Change skipIfGcc to expectedFailure for GCC <= 4.6.
Siva Chandra [Thu, 21 May 2015 18:12:19 +0000 (18:12 +0000)]
[TestBuiltinTrap] Change skipIfGcc to expectedFailure for GCC <= 4.6.

Test Plan: dotest.py -C gcc -p TestBuiltinTrap

Reviewers: vharron

Reviewed By: vharron

Subscribers: lldb-commits

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

llvm-svn: 237922

9 years agoTestInlineStepping - made XFAIL more specific
Vince Harron [Thu, 21 May 2015 18:07:16 +0000 (18:07 +0000)]
TestInlineStepping - made XFAIL more specific

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

llvm-svn: 237921

9 years agoUpdate Makefile to reflect that TestNumThreads now uses std::thread instead of pthreads.
Adrian McCarthy [Thu, 21 May 2015 17:47:58 +0000 (17:47 +0000)]
Update Makefile to reflect that TestNumThreads now uses std::thread instead of pthreads.

llvm-svn: 237919

9 years agouse range-based for-loops; NFCI
Sanjay Patel [Thu, 21 May 2015 17:43:26 +0000 (17:43 +0000)]
use range-based for-loops; NFCI

llvm-svn: 237918

9 years agouse range-based for-loops; NFCI
Sanjay Patel [Thu, 21 May 2015 17:22:45 +0000 (17:22 +0000)]
use range-based for-loops; NFCI

llvm-svn: 237917

9 years agoFix task team synchronization
Jonathan Peyton [Thu, 21 May 2015 17:20:01 +0000 (17:20 +0000)]
Fix task team synchronization

The fix simply syncs up the new threads to have the same task_state and
task_team as the old threads.  The master thread is skipped,
because it shouldn't at this point have the team's task_team value yet
-- it should still have parent_team's task_team.  It gets pointed at
the new team's task_team later, after __kmp_allocate_team returns, and
the master has stored a memo of it's old task_state.

llvm-svn: 237916

9 years agoFix warning on builds without asserts.
Rafael Espindola [Thu, 21 May 2015 17:09:22 +0000 (17:09 +0000)]
Fix warning on builds without asserts.

llvm-svn: 237915

9 years agouse range-based for-loop
Sanjay Patel [Thu, 21 May 2015 17:04:17 +0000 (17:04 +0000)]
use range-based for-loop

llvm-svn: 237914

9 years agoAvoid unnecessary section switching. NFC.
Rafael Espindola [Thu, 21 May 2015 17:00:40 +0000 (17:00 +0000)]
Avoid unnecessary section switching. NFC.

llvm-svn: 237913

9 years agoRemove yet another method of creating begin and end symbol for sections.
Rafael Espindola [Thu, 21 May 2015 16:52:32 +0000 (16:52 +0000)]
Remove yet another method of creating begin and end symbol for sections.

I missed this one when first unifying how we handle begin and end symbols.

llvm-svn: 237912

9 years agodon't repeat function names in comments; NFC
Sanjay Patel [Thu, 21 May 2015 16:42:22 +0000 (16:42 +0000)]
don't repeat function names in comments; NFC

llvm-svn: 237911

9 years agoSize enum so we can store it as 16-bits and avoid casts. NFC
Pete Cooper [Thu, 21 May 2015 16:40:18 +0000 (16:40 +0000)]
Size enum so we can store it as 16-bits and avoid casts.  NFC

llvm-svn: 237910

9 years agoUse existing helper for adding a section. NFC.
Rafael Espindola [Thu, 21 May 2015 16:19:32 +0000 (16:19 +0000)]
Use existing helper for adding a section. NFC.

llvm-svn: 237909

9 years agouse range-based for-loop; NFCI
Sanjay Patel [Thu, 21 May 2015 16:00:50 +0000 (16:00 +0000)]
use range-based for-loop; NFCI

llvm-svn: 237908

9 years agoOnly check for matching arch and UUID when looking for dsym in vincinity of executable.
Robert Flack [Thu, 21 May 2015 15:44:24 +0000 (15:44 +0000)]
Only check for matching arch and UUID when looking for dsym in vincinity of executable.

ModuleSpecs::FindMatchingModuleSpec looks for matching filenames but when
looking for the dSYM we should only be looking for a matching architecture and
and UUID. Jason pointed out this mistake in http://reviews.llvm.org/D9174 when
this function was incorrectly converted to not be Mac specific.

Test Plan:
Running LLDB on test/lang/c/shared_lib_stripped_symbols/a.out in a debugger I've
verified LocateDSYMInVincinityOfExecutable correctly locates the matching dSYM.

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

llvm-svn: 237907

9 years agostd::sort must be called with a strict weak ordering.
Manuel Klimek [Thu, 21 May 2015 15:38:25 +0000 (15:38 +0000)]
std::sort must be called with a strict weak ordering.

Found by a debug enabled stl.

llvm-svn: 237906

9 years ago[clang-tidy] Disable google-readability-casting for .c files and their headers.
Alexander Kornienko [Thu, 21 May 2015 14:08:56 +0000 (14:08 +0000)]
[clang-tidy] Disable google-readability-casting for .c files and their headers.

Some people have reasons to compile their .c files as C++ in some configurations
(e.g. for testing purposes), so just looking at LangOptions is not enough. This
patch disables the check on all .c files (and also for the headers included from
.c files).

llvm-svn: 237905

9 years agoAdd bug number for TestEvents
Tamas Berghammer [Thu, 21 May 2015 14:04:17 +0000 (14:04 +0000)]
Add bug number for TestEvents

llvm-svn: 237904

9 years agoAVX-512: Enabled SSE intrinsics on AVX-512.
Elena Demikhovsky [Thu, 21 May 2015 14:01:32 +0000 (14:01 +0000)]
AVX-512: Enabled SSE intrinsics on AVX-512.
Predicate UseAVX depricates pattern selection on AVX-512.
This predicate is necessary for DAG selection to select EVEX form.
But mapping SSE intrinsics to AVX-512 instructions is not ready yet.
So I replaced UseAVX with HasAVX for intrinsics patterns.

llvm-svn: 237903

9 years agoMake Triple::parseARMArch use ARMTargetParser
Renato Golin [Thu, 21 May 2015 13:52:20 +0000 (13:52 +0000)]
Make Triple::parseARMArch use ARMTargetParser

Simplifying Triple::parseARMArch, leaving all the parsing to ARMTargetParser.

This commit also adds AArch64 detection to ARMTargetParser canonicalization,
and a two RedHat arch names (v{6,7}hl, meaning hard-float / little-endian).

Adding enough unit tests to cover the basics. Clang checks fine.

llvm-svn: 237902

9 years agoHandle aggregate return types in SysV-arm ABI
Tamas Berghammer [Thu, 21 May 2015 13:44:40 +0000 (13:44 +0000)]
Handle aggregate return types in SysV-arm ABI

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

llvm-svn: 237901

9 years agoAdd float/double return value handling to SysV-arm ABI
Tamas Berghammer [Thu, 21 May 2015 13:34:46 +0000 (13:34 +0000)]
Add float/double return value handling to SysV-arm ABI

This is neccessary for evaluating expressions with float/double return
value and for displaying float/double return values in case of a thread
step out.

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

llvm-svn: 237900

9 years ago[RewriteStatepointsForGC] Fix debug assertion during derivable pointer rematerialization
Igor Laevsky [Thu, 21 May 2015 13:02:14 +0000 (13:02 +0000)]
[RewriteStatepointsForGC] Fix debug assertion during derivable pointer rematerialization

Correct assertion would be that there is no other uses from chain we are currently cloning. It is ok to have other uses of values not from this chain.

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

llvm-svn: 237899

9 years ago[ARM] Add dynamic symbols to the dynamic library writer
Denis Protivensky [Thu, 21 May 2015 12:52:00 +0000 (12:52 +0000)]
[ARM] Add dynamic symbols to the dynamic library writer

llvm-svn: 237898

9 years agoFix memory-dereferenceable.ll test
Artur Pilipenko [Thu, 21 May 2015 12:51:38 +0000 (12:51 +0000)]
Fix memory-dereferenceable.ll test

One of the testcases introduced by D9365 had incorrect !dereferenceable metadata on load. It must fail but it doesn't due to incorrect order of CHECK/CHECK-NOT commands in test. Fixed both.

Reviewed By: sanjoy

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

llvm-svn: 237897

9 years ago[ARM] Remove useless file with writer's instantiation stub
Denis Protivensky [Thu, 21 May 2015 12:31:15 +0000 (12:31 +0000)]
[ARM] Remove useless file with writer's instantiation stub

llvm-svn: 237896

9 years agoclang-format: [JS] Better support for fat arrows.
Manuel Klimek [Thu, 21 May 2015 12:23:34 +0000 (12:23 +0000)]
clang-format: [JS] Better support for fat arrows.

Assigns a token type (TT_JsFatArrow) to => tokens, and uses that to
more easily recognize and format fat arrow functions.
Improves function parsing to better recognize formal parameter
lists and return type declarations.
Recognizes arrow functions and parse function bodies as child blocks.

Patch by Martin Probst.

llvm-svn: 237895

9 years ago[ARM] Restructure cpu handling in the driver to mostly use the triple
John Brawn [Thu, 21 May 2015 12:19:49 +0000 (12:19 +0000)]
[ARM] Restructure cpu handling in the driver to mostly use the triple

Using the target cpu to determine some behaviour is sprinkled in
several places in the driver, but in almost all the information that
is needed can be found in the triple. Restructure things so that the
triple is used, and the cpu is only used if the exact cpu name is
needed.

Also add a check that the -mcpu argument is valid, and correct the
-march argument checking so that it handles -march=native correctly. I
would have liked to move these checks into the computation of the
triple, but the triple is calculated several times in several places
and that would lead to multiple error messages for the same thing.

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

llvm-svn: 237894

9 years agoTest commit. Fix typo in MemDerefPrinter.cpp comment.
Artur Pilipenko [Thu, 21 May 2015 11:57:38 +0000 (11:57 +0000)]
Test commit. Fix typo in MemDerefPrinter.cpp comment.

llvm-svn: 237893

9 years ago[ARM] Remove unused field in executable writer
Denis Protivensky [Thu, 21 May 2015 11:50:54 +0000 (11:50 +0000)]
[ARM] Remove unused field in executable writer

llvm-svn: 237892

9 years ago[ARM] Move out common Writer functionality to ARMELFWriter
Denis Protivensky [Thu, 21 May 2015 11:16:40 +0000 (11:16 +0000)]
[ARM] Move out common Writer functionality to ARMELFWriter

llvm-svn: 237891

9 years agoRemove unnecessary FIXME comment
Renato Golin [Thu, 21 May 2015 10:47:56 +0000 (10:47 +0000)]
Remove unnecessary FIXME comment

It has been fixed by commit r237797.

llvm-svn: 237890

9 years agoFixed unused variable warning in non-assert builds from rL237885
Simon Pilgrim [Thu, 21 May 2015 10:22:10 +0000 (10:22 +0000)]
Fixed unused variable warning in non-assert builds from rL237885

llvm-svn: 237889

9 years agoXFAIL TestEvents on Linux bacuse it is flaky
Tamas Berghammer [Thu, 21 May 2015 10:16:55 +0000 (10:16 +0000)]
XFAIL TestEvents on Linux bacuse it is flaky

llvm-svn: 237888

9 years agoXFAILing TestRaise on darwin due to an apparent bug
Pavel Labath [Thu, 21 May 2015 10:15:57 +0000 (10:15 +0000)]
XFAILing TestRaise on darwin due to an apparent bug

llvm-svn: 237887

9 years ago[ELF] Move start/end atom method assignment to OutputELFWriter. NFC
Denis Protivensky [Thu, 21 May 2015 10:11:27 +0000 (10:11 +0000)]
[ELF] Move start/end atom method assignment to OutputELFWriter. NFC

llvm-svn: 237886

9 years ago[X86][SSE] Improve support for 128-bit vector sign extension
Simon Pilgrim [Thu, 21 May 2015 10:05:03 +0000 (10:05 +0000)]
[X86][SSE] Improve support for 128-bit vector sign extension

This patch improves support for sign extension of the lower lanes of vectors of integers by making use of the SSE41 pmovsx* sign extension instructions where possible, and optimizing the sign extension by shifts on pre-SSE41 targets (avoiding the use of i64 arithmetic shifts which require scalarization).

It converts SIGN_EXTEND nodes to SIGN_EXTEND_VECTOR_INREG where necessary, that more closely matches the pmovsx* instruction than the default approach of using SIGN_EXTEND_INREG which splits the operation (into an ANY_EXTEND lowered to a shuffle followed by shifts) making instruction matching difficult during lowering. Necessary support for SIGN_EXTEND_VECTOR_INREG has been added to the DAGCombiner.

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

llvm-svn: 237885

9 years ago[mips] [IAS] Add 2 missing CHECK directives for fixups in mips-expansions.s.
Toma Tabacu [Thu, 21 May 2015 10:04:39 +0000 (10:04 +0000)]
[mips] [IAS] Add 2 missing CHECK directives for fixups in mips-expansions.s.

llvm-svn: 237884

9 years ago[ARM] Remove unused fields in dynamic library writer
Denis Protivensky [Thu, 21 May 2015 09:52:21 +0000 (09:52 +0000)]
[ARM] Remove unused fields in dynamic library writer

llvm-svn: 237883

9 years ago[OPENMP] Fixed codegen for parameters privatization.
Alexey Bataev [Thu, 21 May 2015 09:47:46 +0000 (09:47 +0000)]
[OPENMP] Fixed codegen for parameters privatization.

For parameters we shall take a derived type of parameters, not the original one.

llvm-svn: 237882

9 years ago[ARM] Add skeleton implementation of DSO linking
Denis Protivensky [Thu, 21 May 2015 09:28:25 +0000 (09:28 +0000)]
[ARM] Add skeleton implementation of DSO linking

llvm-svn: 237881

9 years ago[NativeProcessLinux] Fix handling of SIGSTOP
Pavel Labath [Thu, 21 May 2015 08:32:18 +0000 (08:32 +0000)]
[NativeProcessLinux] Fix handling of SIGSTOP

Summary:
Previously, NPL tried to reinject SIGSTOP into the inferior in an attempt to get the process to
start in the group-stop state. This was:
a) wrong (reinjection should be controlled by "process handle" lldb setting)
b) racy (it should use Resume for transparent resuming instead of RequestResume)
c) broken (llgs crashed on inferior SIGSTOP)

With this change, SIGSTOP is handled just like any other signal delivered to the inferior: we
stop all threads and report signal reception to lldb. SIGSTOP reinjection does not behave the
same way as it would outside the debugger, but simulating this is a hard problem and is not
normally necessary.

Test Plan: I have added a test which verifies we get SIGSTOP reports and we do not crash.

Reviewers: ovyalov, chaoren

Subscribers: lldb-commits

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

llvm-svn: 237880

9 years ago[OPENMP] Fixed codegen for lastprivate LCV in worksharing constructs.
Alexey Bataev [Thu, 21 May 2015 07:59:51 +0000 (07:59 +0000)]
[OPENMP] Fixed codegen for lastprivate LCV in worksharing constructs.

If loop control variable in a worksharing construct is marked as lastprivate, we should copy last calculated value of private counter back to original variable.

llvm-svn: 237879

9 years agotrivial log print fix
Vince Harron [Thu, 21 May 2015 05:57:28 +0000 (05:57 +0000)]
trivial log print fix

llvm-svn: 237878

9 years ago[TableGen] Resolve complex def names inside multiclasses
Hal Finkel [Thu, 21 May 2015 04:32:56 +0000 (04:32 +0000)]
[TableGen] Resolve complex def names inside multiclasses

We had not been trying hard enough to resolve def names inside multiclasses
that had complex concatenations, etc. Now we'll try harder.

Patch by Amaury Sechet!

llvm-svn: 237877

9 years agoAsmPrinter: Compute absolute label difference directly
Duncan P. N. Exon Smith [Thu, 21 May 2015 02:41:23 +0000 (02:41 +0000)]
AsmPrinter: Compute absolute label difference directly

Create a low-overhead path for `EmitLabelDifference()` that emits a
emits an absolute number when (1) the output is an object stream and (2)
the two symbols are in the same data fragment.

This drops memory usage on Mach-O from 975 MB down to 919 MB (5.8%).
The only call is when `!doesDwarfUseRelocationsAcrossSections()` --
i.e., on Mach-O -- since otherwise an absolute offset from the start of
the section needs a relocation.  (`EmitLabelDifference()` is cheaper on
ELF anyway, since it creates 1 fewer temp symbol, and it gets called far
less often.  It's not clear to me if this is even a bottleneck there.)

(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)

llvm-svn: 237876

9 years agoMC: Initialize MCSymbolData::Offset directly
Duncan P. N. Exon Smith [Thu, 21 May 2015 01:59:58 +0000 (01:59 +0000)]
MC: Initialize MCSymbolData::Offset directly

Try to fix miscompile after r237873.  Looks like this union
initialization isn't legal (or at least not supported).

llvm-svn: 237875

9 years ago[MemCpyOpt] Do move the memset, but look at its dest's dependencies.
Ahmed Bougacha [Thu, 21 May 2015 01:43:39 +0000 (01:43 +0000)]
[MemCpyOpt] Do move the memset, but look at its dest's dependencies.

In effect a partial revert of r237858, which was a dumb shortcut.
Looking at the dependencies of the destination should be the proper
fix: if the new memset would depend on anything other than itself,
the transformation isn't correct.

llvm-svn: 237874

9 years agoMC: Simplify MCSymbolData initialization and remove MCSymbol pointer
Duncan P. N. Exon Smith [Thu, 21 May 2015 01:33:03 +0000 (01:33 +0000)]
MC: Simplify MCSymbolData initialization and remove MCSymbol pointer

Finally remove the `MCSymbolData::Symbol` pointer.  It was still being
used to track whether `MCSymbolData` had been initialized, but this is
better tracked by the bitfield in `MCSymbol`.

The only caller of `MCSymbolData::initialize()` was `MCAssembler`, which
(other than `Symbol`) passed in all-0 values.  Replace all that
indirection with a default constructor.

The main point is a cleanup (and there's more cleanup to do), but there
are also some small memory savings.  I measured ~989 MB down to ~975 MB,
cutting a little over 1% off the top of `llc`.

(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)

llvm-svn: 237873

9 years agoAvoid using a C++11 library feature not present in libstdc++4.7.
Richard Smith [Thu, 21 May 2015 01:26:53 +0000 (01:26 +0000)]
Avoid using a C++11 library feature not present in libstdc++4.7.

llvm-svn: 237872

9 years ago[modules] If we re-enter a submodule from within itself (when submodule
Richard Smith [Thu, 21 May 2015 01:20:10 +0000 (01:20 +0000)]
[modules] If we re-enter a submodule from within itself (when submodule
visibility is enabled) or leave and re-enter it, restore the macro and module
visibility state from last time we were in that submodule.

This allows mutually-#including header files to stand a chance at being
modularized with local visibility enabled.

llvm-svn: 237871

9 years ago[Driver] Improve unused-argument diagnostic for extra sanitizer features.
Alexey Samsonov [Thu, 21 May 2015 01:07:52 +0000 (01:07 +0000)]
[Driver] Improve unused-argument diagnostic for extra sanitizer features.

Don't print unused-argument warning for sanitizer-specific feature flag
if this sanitizer was eanbled, and later disabled in the command line.
For example, now:
  clang -fsanitize=address -fsanitize-coverage=bb -fno-sanitize=address a.cc
doesn't print warning, but
  clang -fsanitize-coverage=bb
does. Same holds for -fsanitize-address-field-padding= and
-fsanitize-memory-track-origins= flags.

Fixes PR23604.

llvm-svn: 237870

9 years agoDocument the CoreCLR GC Strategy
Swaroop Sridhar [Thu, 21 May 2015 00:50:10 +0000 (00:50 +0000)]
Document the CoreCLR GC Strategy

Add notead about the CoreCLR GC Strategy to the
Garbage Collection document.

llvm-svn: 237869

9 years agoMC: Make MCSymbolData::Symbol private
Duncan P. N. Exon Smith [Thu, 21 May 2015 00:49:09 +0000 (00:49 +0000)]
MC: Make MCSymbolData::Symbol private

Make the back-pointer from `MCSymbolData` to `MCSymbol` private,
preparing to remove the back pointer entirely.  I've already updated all
the users, although for now it's still used to indicate whether
`MCSymbol::Data` has been initialized.

llvm-svn: 237868

9 years agoMC: Remove last use of MCSymbolData::getSymbol(), NFC
Duncan P. N. Exon Smith [Thu, 21 May 2015 00:39:24 +0000 (00:39 +0000)]
MC: Remove last use of MCSymbolData::getSymbol(), NFC

Remove the last use of `MCSymbolData::getSymbol()`.  There's some
*really* hairy stuff going on in `MachObjectWriter::WriteNList()` that I
want to come back to.  In particular, it updates `Symbol` to point at
its aliasee (if any), but leaves `Data` behind, and it's not clear
whether everything makes sense there.

For now I've left the logic unchanged by adding `OrigSymbol` and moving
the FIXME from r237750 up a bit higher.  I've filed PR23598 to track
looking into this.

llvm-svn: 237867

9 years agoFix the logic in DynamicLoaderMacOSXDYLD::Clear that would only remove the old dyld...
Jim Ingham [Thu, 21 May 2015 00:27:01 +0000 (00:27 +0000)]
Fix the logic in DynamicLoaderMacOSXDYLD::Clear that would only remove the old dyld notification
breakpoint only  if the process it was for is still alive.  We need to always remove this because
it has a pointer to the old loader, and    if we ever hit it we will crash.  I also put in a sanity
check in the callback function to make sure we don't invoke it if the process is wrong.

<rdar://problem/21006189>

llvm-svn: 237866

9 years agoFixed an issue with expressions that define types in the expression. We must currentl...
Greg Clayton [Thu, 21 May 2015 00:26:58 +0000 (00:26 +0000)]
Fixed an issue with expressions that define types in the expression. We must currently touch the members of the struct in the right order or our ClangASTImporter::DeportType() will copy the resulting type into the target AST incorrectly. This is a work around for <rdar://problem/21049838> which the copy type issue so that it doesn't happen.

<rdar://problem/20902950>

llvm-svn: 237865

9 years agoUsing -pthread instead of -lpthread to appease GCC.
Chaoren Lin [Thu, 21 May 2015 00:19:15 +0000 (00:19 +0000)]
Using -pthread instead of -lpthread to appease GCC.

llvm-svn: 237864

9 years agoRename a helper template function to 'bytes' to avoid a C++17 STL conflict
Reid Kleckner [Thu, 21 May 2015 00:13:09 +0000 (00:13 +0000)]
Rename a helper template function to 'bytes' to avoid a C++17 STL conflict

MSVC 2015 includes the std::data() template function added to C++17. ADL
causes both cl.exe and clang-cl to prefer std::data over our static
helper here, and we get errors about converting int64_t* to StringRef.
Renaming it to bytes avoids the ambiguity.

llvm-svn: 237863

9 years agoWork around overloading bug in MSVC 2015
Reid Kleckner [Thu, 21 May 2015 00:12:53 +0000 (00:12 +0000)]
Work around overloading bug in MSVC 2015

MSVC 2015 appears to be unable to find the correct operator== here. I
haven't yet filed a bug with Microsoft as I've been unable to create a
reduced test case.

llvm-svn: 237862

9 years ago[MemCpyOpt] Pass Instruction to IRBuilder, no need for NextNode. NFC.
Ahmed Bougacha [Thu, 21 May 2015 00:08:35 +0000 (00:08 +0000)]
[MemCpyOpt] Pass Instruction to IRBuilder, no need for NextNode. NFC.

We're erasing the instructions anyway.

llvm-svn: 237861

9 years ago[opaque pointer type] Pass explicit pointee type in another case of GEP constant...
David Blaikie [Thu, 21 May 2015 00:06:38 +0000 (00:06 +0000)]
[opaque pointer type] Pass explicit pointee type in another case of GEP constant folding

llvm-svn: 237860

9 years agoFix build error
Andrew Kaylor [Wed, 20 May 2015 23:58:44 +0000 (23:58 +0000)]
Fix build error

llvm-svn: 237859

9 years ago[MemCpyOpt] Don't move the memset when optimizing memset+memcpy.
Ahmed Bougacha [Wed, 20 May 2015 23:55:16 +0000 (23:55 +0000)]
[MemCpyOpt] Don't move the memset when optimizing memset+memcpy.

Fixes PR23599, another miscompile introduced by r235232: when there is
another dependency on the destination of the created memset (i.e., the
part of the original destination that the memcpy doesn't depend on)
between the memcpy and the original memset, we would insert the created
memset after the memcpy, and thus after the other dependency.

Instead, insert the created memset right after the old one.

llvm-svn: 237858

9 years ago[LLD] Make lastOrdinal atomic to avoid race conditions.
Lang Hames [Wed, 20 May 2015 23:44:37 +0000 (23:44 +0000)]
[LLD] Make lastOrdinal atomic to avoid race conditions.

No test case: We don't have a good way to test race conditions.

llvm-svn: 237857

9 years agoCheck for bool-like conversion in conditional expressions.
Richard Trieu [Wed, 20 May 2015 23:29:18 +0000 (23:29 +0000)]
Check for bool-like conversion in conditional expressions.

Add a check for bool-like conversions for the condition expression of
conditional operators.  This is similiar to the checking of condition
expressions of if statements, for-loops, while-loops, and do-while loops.
Specificially, this is to fix the problem of assert("message") not triggering
-Wstring-conversion when the assert macro uses a conditional operator.

llvm-svn: 237856

9 years agoFix build warning
Andrew Kaylor [Wed, 20 May 2015 23:28:03 +0000 (23:28 +0000)]
Fix build warning

llvm-svn: 237855

9 years ago[WinEH] C++ EH state numbering fixes
Andrew Kaylor [Wed, 20 May 2015 23:22:24 +0000 (23:22 +0000)]
[WinEH] C++ EH state numbering fixes

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

llvm-svn: 237854

9 years ago[WinEH] Store pointers to the LSDA in the exception registration object
Reid Kleckner [Wed, 20 May 2015 23:08:04 +0000 (23:08 +0000)]
[WinEH] Store pointers to the LSDA in the exception registration object

We aren't yet emitting the LSDA yet, so this will still fail to
assemble.

llvm-svn: 237852

9 years agoDon't generate comments in the DebugLocStream unless required. NFC.
Pete Cooper [Wed, 20 May 2015 22:51:27 +0000 (22:51 +0000)]
Don't generate comments in the DebugLocStream unless required.  NFC.

The ByteStreamer here wasn't taking account of whether the asm streamer was text based and verbose.  Only with that combination should we emit comments.

This change makes sure that we only actually convert a Twine to a string using Twine::str() if we need the comment.  This saves about 10000 small allocations on a test case involving the verify-use_list-order bitcode going through llc with debug info.

Note, this is NFC as the comments would ultimately never be emitted unless required.

Reviewed by Duncan Exon Smith and David Blaikie.

llvm-svn: 237851

9 years ago[OpenMP] Make default OpenMP library (the one selected with just -fopenmp)
Richard Smith [Wed, 20 May 2015 22:48:44 +0000 (22:48 +0000)]
[OpenMP] Make default OpenMP library (the one selected with just -fopenmp)
configurable in the CMake build. There shouldn't be any change in default
behavior.

Derived from a patch by Daniel Jasper!

llvm-svn: 237850

9 years agoRevert "Add bool to DebugLocDwarfExpression to control emitting comments."
Pete Cooper [Wed, 20 May 2015 22:37:48 +0000 (22:37 +0000)]
Revert "Add bool to DebugLocDwarfExpression to control emitting comments."

This reverts commit 0037b6bcbc874aa1b93d7ce3ad8dba3753ee2d9d (r237827).

David Blaikie suggested some alternatives to this which are better.  Reverting to apply a better solution later.

llvm-svn: 237849

9 years ago[darwin] fix libcompiler_rt.dylib build
Nick Kledzik [Wed, 20 May 2015 22:37:46 +0000 (22:37 +0000)]
[darwin] fix libcompiler_rt.dylib build

The dylib build of compiler-rt has been broken on darwin since the
directory restructuring to push some things down into /builtins/.

llvm-svn: 237848

9 years ago[LLD] Fix an out-of-order-initialization bug that was introduced in r237841 by
Lang Hames [Wed, 20 May 2015 22:35:20 +0000 (22:35 +0000)]
[LLD] Fix an out-of-order-initialization bug that was introduced in r237841 by
moving a field in MachOLinkingContext.

llvm-svn: 237847

9 years ago[LLD] Revert r237842 - it went in without a proper commit message.
Lang Hames [Wed, 20 May 2015 22:33:34 +0000 (22:33 +0000)]
[LLD] Revert r237842 - it went in without a proper commit message.

llvm-svn: 237846

9 years agoChange CMake variable prefix to LIBOMP
Jonathan Peyton [Wed, 20 May 2015 22:33:24 +0000 (22:33 +0000)]
Change CMake variable prefix to LIBOMP

Cached CMake variables need to have a prefix so they don't collide with other
projects. This change (a lot of simple changes) simply prefixes cached variables
with LIBOMP_ and sets all of these variables to UPPERCASE which is convention.
e.g., os => LIBOMP_OS, ompt_support => LIBOMP_OMPT_SUPPORT.

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

llvm-svn: 237845

9 years agoHave TestNumThreads use std::thread instead of pthreads so that it can work cross...
Adrian McCarthy [Wed, 20 May 2015 22:32:44 +0000 (22:32 +0000)]
Have TestNumThreads use std::thread instead of pthreads so that it can work cross-platform.

llvm-svn: 237844

9 years agoRevert r237828 "[X86] Remove unused node after morphing it from shr to and."
Hans Wennborg [Wed, 20 May 2015 22:31:55 +0000 (22:31 +0000)]
Revert r237828 "[X86] Remove unused node after morphing it from shr to and."

This caused assertions during DAG combine: PR23601.

llvm-svn: 237843

9 years agoy
Lang Hames [Wed, 20 May 2015 22:26:06 +0000 (22:26 +0000)]
y

llvm-svn: 237842

9 years ago[LLD] Add support for the -stack_size option to Darwin ld.
Lang Hames [Wed, 20 May 2015 22:10:50 +0000 (22:10 +0000)]
[LLD] Add support for the -stack_size option to Darwin ld.

llvm-svn: 237841

9 years ago[doc] Update Lexicon with C++ unwinder acronyms
Nick Kledzik [Wed, 20 May 2015 22:04:06 +0000 (22:04 +0000)]
[doc] Update Lexicon with C++ unwinder acronyms

llvm-svn: 237840

9 years agoEvaluate union cast subexpressions when the cast value is unused
Reid Kleckner [Wed, 20 May 2015 21:59:25 +0000 (21:59 +0000)]
Evaluate union cast subexpressions when the cast value is unused

Fixes PR23597.

llvm-svn: 237839

9 years ago[opaque pointer type] Pass explicit type to Load instruction creation in AutoUpgrade
David Blaikie [Wed, 20 May 2015 21:46:30 +0000 (21:46 +0000)]
[opaque pointer type] Pass explicit type to Load instruction creation in AutoUpgrade

llvm-svn: 237838

9 years ago[Target/ARM] Only enable OptimizeBarrierPass at -O1 and above.
Davide Italiano [Wed, 20 May 2015 21:40:38 +0000 (21:40 +0000)]
[Target/ARM] Only enable OptimizeBarrierPass at -O1 and above.

Ideally this is going to be and LLVM IR pass (shared, among others
with AArch64), but for the time being just enable it if consumers
ask us for optimization and not unconditionally.

Discussed with Tim Northover on IRC.

llvm-svn: 237837

9 years ago[lib/Fuzzer] more docs
Kostya Serebryany [Wed, 20 May 2015 21:03:03 +0000 (21:03 +0000)]
[lib/Fuzzer] more docs

llvm-svn: 237836

9 years agoRefactored some common functionality into MaybeParseMicrosoftDeclSpecs; NFC.
Aaron Ballman [Wed, 20 May 2015 20:58:33 +0000 (20:58 +0000)]
Refactored some common functionality into MaybeParseMicrosoftDeclSpecs; NFC.

llvm-svn: 237835

9 years ago[lld] Use lit's shell to run tests on Windows by default
Reid Kleckner [Wed, 20 May 2015 20:41:45 +0000 (20:41 +0000)]
[lld] Use lit's shell to run tests on Windows by default

It's a lot faster than bash.

Also use FileCheck instead of grep to search through a binary file.
Cygwin's grep isn't working here for unknown reasons that probably
aren't worth investigating.

llvm-svn: 237834

9 years agoAsmParser: Require a terminating null character when creating memory buffer.
Alex Lorenz [Wed, 20 May 2015 20:41:27 +0000 (20:41 +0000)]
AsmParser: Require a terminating null character when creating memory buffer.

This commit modifies the memory buffer creation in the AsmParser library so
that it requires a terminating null character. The LLLexer in the AsmParser
library checks for EOF only when it sees a null character, thus it would
be best to require it when creating a memory buffer so that the memory
buffer constructor can verify that a terminating null character is indeed
present.

Reviewers: Duncan P. N. Exon Smith, Matthias Braun

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

llvm-svn: 237833

9 years agoCopy lit shell changes from clang to clang-tools-extra, excluding some failing tests
Reid Kleckner [Wed, 20 May 2015 20:33:18 +0000 (20:33 +0000)]
Copy lit shell changes from clang to clang-tools-extra, excluding some failing tests

llvm-svn: 237832

9 years agoDefault dst value for platform put-file.
Chaoren Lin [Wed, 20 May 2015 20:23:23 +0000 (20:23 +0000)]
Default dst value for platform put-file.

Summary: It should default to working-dir/src-filename if dst is not specified.

Reviewers: clayborg, flackr

Reviewed By: flackr

Subscribers: lldb-commits

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

llvm-svn: 237831

9 years ago[opaque pointer type] LoadInst: assert that the explicit type matches the implicit one
David Blaikie [Wed, 20 May 2015 20:22:31 +0000 (20:22 +0000)]
[opaque pointer type] LoadInst: assert that the explicit type matches the implicit one

llvm-svn: 237830

9 years agoMC: Remove most remaining uses of MCSymbolData::getSymbol(), NFC
Duncan P. N. Exon Smith [Wed, 20 May 2015 20:18:16 +0000 (20:18 +0000)]
MC: Remove most remaining uses of MCSymbolData::getSymbol(), NFC

Remove most remaining calls to `MCSymbolData::getSymbol()`, instead
using the already available `MCSymbol` directly.

llvm-svn: 237829

9 years ago[X86] Remove unused node after morphing it from shr to and.
Benjamin Kramer [Wed, 20 May 2015 20:10:26 +0000 (20:10 +0000)]
[X86] Remove unused node after morphing it from shr to and.

In some cases it won't get cleaned up properly leading to crashes
downstream. PR23353.

Based on a patch by Davide Italiano.

llvm-svn: 237828

9 years agoAdd bool to DebugLocDwarfExpression to control emitting comments.
Pete Cooper [Wed, 20 May 2015 19:50:03 +0000 (19:50 +0000)]
Add bool to DebugLocDwarfExpression to control emitting comments.

DebugLocDwarfExpression::EmitOp was creating temporary strings by concatenating Twine's.

When emitting to object files, these comments are thrown away.

This commit adds a boolean to the constructor of the DwarfExpression to control whether it will actually emit
any comments.  This prevents it from even generating the temporary comments which would have been thrown away anyway.

llvm-svn: 237827

9 years agoMC: Stop using MCSymbolData::getSymbol() in WinCOFF, NFC
Duncan P. N. Exon Smith [Wed, 20 May 2015 19:34:08 +0000 (19:34 +0000)]
MC: Stop using MCSymbolData::getSymbol() in WinCOFF, NFC

Move APIs over from `MCSymbolData` to `MCSymbol`.

llvm-svn: 237826

9 years agoSince the asan report function doesn't gather bp or sp,
Jim Ingham [Wed, 20 May 2015 19:15:43 +0000 (19:15 +0000)]
Since the asan report function doesn't gather bp or sp,
don't put those values in the Structured Data we make up
from the report.

<rdar://problem/21038887>

llvm-svn: 237824

9 years agoUse a SmallString buffer instead of a std::string for debug info path lookup. NFC.
Pete Cooper [Wed, 20 May 2015 19:12:14 +0000 (19:12 +0000)]
Use a SmallString buffer instead of a std::string for debug info path lookup.  NFC.

This code appends the filename to the directory then looks that up in a StringMap.  We should be using the existing Twine::toStringRef method instead of Twine::str() as most times we'll succeed in the lookup.

Its possible that we should also consider allowing StringMap to lookup a key using a Twine in addition to a StringRef but that would complicate the code with little known benefit above and beyond this change.

This saves 170k temporary allocations when running llc on the verify_use_list_order bitcode with debug info for x86.

llvm-svn: 237823

9 years agoDAGCombiner: Continue combining if FoldConstantArithmetic() fails.
Matthias Braun [Wed, 20 May 2015 18:54:02 +0000 (18:54 +0000)]
DAGCombiner: Continue combining if FoldConstantArithmetic() fails.

DAG.FoldConstantArithmetic() can fail even though both operands are
Constants if OpaqueConstants are involved. Continue trying other combine
possibilities in tis case.

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

Somewhat related to PR21801 / rdar://19211454

llvm-svn: 237822

9 years agoReapply r237539 with a fix for the Chromium build.
James Molloy [Wed, 20 May 2015 18:41:25 +0000 (18:41 +0000)]
Reapply r237539 with a fix for the Chromium build.

Make sure if we're truncating a constant that would then be sign extended
that the sign extension of the truncated constant is the same as the
original constant.

> Canonicalize min/max expressions correctly.
>
> This patch introduces a canonical form for min/max idioms where one operand
> is extended or truncated. This often happens when the other operand is a
> constant. For example:
>
> %1 = icmp slt i32 %a, i32 0
> %2 = sext i32 %a to i64
> %3 = select i1 %1, i64 %2, i64 0
>
> Would now be canonicalized into:
>
> %1 = icmp slt i32 %a, i32 0
> %2 = select i1 %1, i32 %a, i32 0
> %3 = sext i32 %2 to i64
>
> This builds upon a patch posted by David Majenemer
> (https://www.marc.info/?l=llvm-commits&m=143008038714141&w=2). That pass
> passively stopped instcombine from ruining canonical patterns. This
> patch additionally actively makes instcombine canonicalize too.
>
> Canonicalization of expressions involving a change in type from int->fp
> or fp->int are not yet implemented.

llvm-svn: 237821