platform/upstream/llvm.git
6 years ago[ASan] Linker-initialize static ScopedInErrorReport::current_error_.
Alex Shlyapnikov [Thu, 14 Jun 2018 18:22:23 +0000 (18:22 +0000)]
[ASan] Linker-initialize static ScopedInErrorReport::current_error_.

Summary:
Static ScopedInErrorReport::current_error_ can be linker initialized to
shave one global ctor call on application startup and be __asan_init-safe.

Global constructors in ASan runtime are bad because __asan_init runs
from preinit_array, before any such constructors.

Issue: https://github.com/google/sanitizers/issues/194

Reviewers: eugenis, morehouse

Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D48141

llvm-svn: 334748

6 years ago[CMAKE][c-index-test] Honor CMAKE_OSX_SYSROOT to compute include dir for libxml2
Bruno Cardoso Lopes [Thu, 14 Jun 2018 18:20:04 +0000 (18:20 +0000)]
[CMAKE][c-index-test] Honor CMAKE_OSX_SYSROOT to compute include dir for libxml2

On MacOS, if CMAKE_OSX_SYSROOT is used and the user has command line tools
installed, we currently get the include path for libxml2 as
/usr/include/libxml2, instead of ${CMAKE_OSX_SYSROOT}/usr/include/libxml2.

Make it consistent on MacOS by prefixing ${CMAKE_OSX_SYSROOT} when
possible.

rdar://problem/41103601

llvm-svn: 334747

6 years ago[CMAKE] Honor CMAKE_OSX_SYSROOT to compute include dir for libxml2
Bruno Cardoso Lopes [Thu, 14 Jun 2018 18:19:54 +0000 (18:19 +0000)]
[CMAKE] Honor CMAKE_OSX_SYSROOT to compute include dir for libxml2

On MacOS, if CMAKE_OSX_SYSROOT is used and the user has command line tools
installed, we currently get the include path for libxml2 as
/usr/include/libxml2, instead of ${CMAKE_OSX_SYSROOT}/usr/include/libxml2.

Make it consistent on MacOS by prefixing ${CMAKE_OSX_SYSROOT} when
possible.

rdar://problem/41103601

llvm-svn: 334746

6 years agoAdd remaining fixed-point types and saturated equivalents to fix -Wswitch of r334718
Fangrui Song [Thu, 14 Jun 2018 18:19:40 +0000 (18:19 +0000)]
Add remaining fixed-point types and saturated equivalents to fix -Wswitch of r334718

llvm-svn: 334745

6 years ago[x86] add tests for AVX1 FP logic op abuse (PR37749); NFC
Sanjay Patel [Thu, 14 Jun 2018 18:08:06 +0000 (18:08 +0000)]
[x86] add tests for AVX1 FP logic op abuse (PR37749); NFC

Also, add a RUN for AVX2 to make sure that's good.

llvm-svn: 334744

6 years agoAdd a script to setup codesigning on macOS.
Frederic Riss [Thu, 14 Jun 2018 18:04:13 +0000 (18:04 +0000)]
Add a script to setup codesigning on macOS.

I've been using this script on a couple machines and it seems to work
so I'm putting it out there, maybe other people will find it useful.
It is strongly inspired from a similar script in the delve project.

llvm-svn: 334743

6 years ago[llvm-mca] Add tests for instructions that implicitly clear the upper portion of...
Andrea Di Biagio [Thu, 14 Jun 2018 17:48:42 +0000 (17:48 +0000)]
[llvm-mca] Add tests for instructions that implicitly clear the upper portion of a super-register.

On x86-64, a write to register EAX implicitly clears the upper half or RAX.
128-bit AVX instructions clear the upper 128-bit of the YMM register that
aliases the XMM definition register.

llvm-mca doesn't know about register writes that implicitly clear the upper
portion of an aliasing super-register. This issue will be fixed in a future patch.

llvm-svn: 334742

6 years ago[X86] Lowering Mask Scalar intrinsics to native IR (Clang part)
Tomasz Krupa [Thu, 14 Jun 2018 17:36:23 +0000 (17:36 +0000)]
[X86] Lowering Mask Scalar intrinsics to native IR (Clang part)

Summary: Lowering add, sub, mul, and div mask scalar intrinsic calls
to native IR.

Reviewers: craig.topper, RKSimon, spatel, sroland

Reviewed By: craig.topper

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D47979

llvm-svn: 334741

6 years ago[X86] Lowering Mask Scalar intrinsics to native IR (LLVM part)
Tomasz Krupa [Thu, 14 Jun 2018 17:32:58 +0000 (17:32 +0000)]
[X86] Lowering Mask Scalar intrinsics to native IR (LLVM part)

Summary: Complementary patch to lowering add, sub, mul and div mask scalar
intrinsics in Clang.

Reviewers: craig.topper, sroland, spatel, RKSimon

Reviewed by: craig.topper

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D47978

llvm-svn: 334740

6 years ago[clang-format] Disable AlwaysBreakBeforeMultilineStrings in Google style for Objectiv...
Ben Hamilton [Thu, 14 Jun 2018 17:30:10 +0000 (17:30 +0000)]
[clang-format] Disable AlwaysBreakBeforeMultilineStrings in Google style for Objective-C ðŸ“œ

Contributed by @stephanemoore.

Reviewers: benhamilton, jolesiak, djasper

Reviewed By: benhamilton

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D47393

llvm-svn: 334739

6 years ago[SCEV] Fix a variable name, NFC.
Justin Lebar [Thu, 14 Jun 2018 17:14:01 +0000 (17:14 +0000)]
[SCEV] Fix a variable name, NFC.

llvm-svn: 334738

6 years ago[SCEV] Simplify zext/trunc idiom that appears when handling bitmasks.
Justin Lebar [Thu, 14 Jun 2018 17:13:48 +0000 (17:13 +0000)]
[SCEV] Simplify zext/trunc idiom that appears when handling bitmasks.

Summary:
Specifically, we transform

  zext(2^K * (trunc X to iN)) to iM ->
  2^K * (zext(trunc X to i{N-K}) to iM)<nuw>

This is helpful because pulling the 2^K out of the zext allows further
optimizations.

Reviewers: sanjoy

Subscribers: hiraditya, llvm-commits, timshen

Differential Revision: https://reviews.llvm.org/D48158

llvm-svn: 334737

6 years ago[SCEV] Simplify trunc-of-add/mul to add/mul-of-trunc under more circumstances.
Justin Lebar [Thu, 14 Jun 2018 17:13:35 +0000 (17:13 +0000)]
[SCEV] Simplify trunc-of-add/mul to add/mul-of-trunc under more circumstances.

Summary:
Previously we would do this simplification only if it did not introduce
any new truncs (excepting new truncs which replace other cast ops).

This change weakens this condition: If the number of truncs stays the
same, but we're able to transform trunc(X + Y) to X + trunc(Y), that's
still simpler, and it may open up additional transformations.

While we're here, also clean up some duplicated code.

Reviewers: sanjoy

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D48160

llvm-svn: 334736

6 years ago[SCEV] Fix indentation and combine two if statements in getMulExpr, NFC.
Justin Lebar [Thu, 14 Jun 2018 17:13:22 +0000 (17:13 +0000)]
[SCEV] Fix indentation and combine two if statements in getMulExpr, NFC.

llvm-svn: 334735

6 years agoRevert "[MC] Factor MCObjectStreamer::addFragmentAtoms out of MachO streamer."
Sam Clegg [Thu, 14 Jun 2018 17:11:19 +0000 (17:11 +0000)]
Revert "[MC] Factor MCObjectStreamer::addFragmentAtoms out of MachO streamer."

This reverts rL331412.  We didn't up using fragment atoms
in the wasm object writer after all.

Differential Revision: https://reviews.llvm.org/D48173

llvm-svn: 334734

6 years ago[AMDGPU] Document the AMDGPU LLVM attributes
Tony Tye [Thu, 14 Jun 2018 16:40:10 +0000 (16:40 +0000)]
[AMDGPU] Document the AMDGPU LLVM attributes

Differential Revision: https://reviews.llvm.org/D48101

llvm-svn: 334733

6 years agoRevert rL334704: "[DebugInfo] Check size of variable in ConvertDebugDeclareToDebugValue"
Bjorn Pettersson [Thu, 14 Jun 2018 16:08:22 +0000 (16:08 +0000)]
Revert rL334704: "[DebugInfo] Check size of variable in ConvertDebugDeclareToDebugValue"

This reverts commit r334704.

Buildbots detected an assertion in "test tsan in debug compiler-rt build".

llvm-svn: 334732

6 years agoAvoid unused variable in non-assert builds.
Nirav Dave [Thu, 14 Jun 2018 15:55:15 +0000 (15:55 +0000)]
Avoid unused variable in non-assert builds.

llvm-svn: 334731

6 years ago[llvm-mca] Add another test for partial register stalls.
Andrea Di Biagio [Thu, 14 Jun 2018 15:54:34 +0000 (15:54 +0000)]
[llvm-mca] Add another test for partial register stalls.

This test checks that a physical register is correctly allocated for the partial
write to register BX.
The ADD instruction has to wait for the write to RBX (and BX) before being
executed.

llvm-svn: 334730

6 years ago[DAG] Avoid needing to walk out legalization tables. NFCI.
Nirav Dave [Thu, 14 Jun 2018 15:46:23 +0000 (15:46 +0000)]
[DAG] Avoid needing to walk out legalization tables. NFCI.

To avoid redundant work, during DAG legalization we keep tables
mapping pre-legalized SDValues to post-legalized SDValues and a
SDValue-to-SDValue map to enable fast node replacements. However, as
the keys are nodes which may be reused it is possible that an entry in
a table refers to a now deleted node N (that should have been renamed
by the value replacement map) while a new node N' exists. If N' is
then replaced that entry would be wrong. Previously we avoided this by
when potentially violating this property, walking every table and
updating all node pointers. This is very expensive but hopefully rare
occurance.

This patch assigns each instance of a SDValue used in legalization a
unique id and uses these ids in the legalization tables. This avoids
any such aliasing issue, avoiding the full table search and allowing
more aggressive incremental table pruning.

In some cases this is a 1000x speedup to compilation.

Reviewers: jyknight, echristo, bogner, tra

Reviewed By: bogner

Subscribers: dberris, grandinj, hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D47959

llvm-svn: 334729

6 years ago[X86] Add more vector instructions to the memory folding table using the autogenerate...
Craig Topper [Thu, 14 Jun 2018 15:40:31 +0000 (15:40 +0000)]
[X86] Add more vector instructions to the memory folding table using the autogenerated table as a guide.

The test cahnge is because we now fold stack reload into RNDSCALE and RNDSCALE can be turned into ROUND by EVEX->VEX.

llvm-svn: 334728

6 years ago[X86] Remove '128' from the internal name of some scalar FP instructions to be consis...
Craig Topper [Thu, 14 Jun 2018 15:40:30 +0000 (15:40 +0000)]
[X86] Remove '128' from the internal name of some scalar FP instructions to be consistent with other scalar instructions.

llvm-svn: 334727

6 years ago[X86] Disable load unfolding for a bunch of instruction where unfolding would increas...
Craig Topper [Thu, 14 Jun 2018 15:40:29 +0000 (15:40 +0000)]
[X86] Disable load unfolding for a bunch of instruction where unfolding would increase the size of the load.

Found by an audit of the manual table vs the autogenerated table.

llvm-svn: 334726

6 years ago[X86] Remove NotMemoryFoldable from some AVX/AVX512 scalar instructions.
Craig Topper [Thu, 14 Jun 2018 15:40:27 +0000 (15:40 +0000)]
[X86] Remove NotMemoryFoldable from some AVX/AVX512 scalar instructions.

Some of these instructions are already in the manual folding table so we should have them in the auto table too.

llvm-svn: 334725

6 years ago[ORC] Filter out self-dependencies in VSO::addDependencies.
Lang Hames [Thu, 14 Jun 2018 15:32:59 +0000 (15:32 +0000)]
[ORC] Filter out self-dependencies in VSO::addDependencies.

llvm-svn: 334724

6 years ago[ORC] Assert that the query argument to VSO::lookup must be non-null.
Lang Hames [Thu, 14 Jun 2018 15:32:59 +0000 (15:32 +0000)]
[ORC] Assert that the query argument to VSO::lookup must be non-null.

llvm-svn: 334723

6 years ago[ORC] Add a WaitUntilReady argument to blockingLookup.
Lang Hames [Thu, 14 Jun 2018 15:32:58 +0000 (15:32 +0000)]
[ORC] Add a WaitUntilReady argument to blockingLookup.

If WaitUntilReady is set to true then blockingLookup will return once all
requested symbols are ready. If WaitUntilReady is set to false then
blockingLookup will return as soon as all requested symbols have been
resolved. In the latter case, if any error occurs in finalizing the symbols it
will be reported to the ExecutionSession, rather than returned by
blockingLookup.

llvm-svn: 334722

6 years ago[ORC] Strip the Materializing flag off finalized symbols in VSOs.
Lang Hames [Thu, 14 Jun 2018 15:32:56 +0000 (15:32 +0000)]
[ORC] Strip the Materializing flag off finalized symbols in VSOs.

Finalized symbols are no longer in the materializing state.

llvm-svn: 334721

6 years ago[docs] Update CompilerWriterInfo.rst for MIPS
Simon Dardis [Thu, 14 Jun 2018 15:16:37 +0000 (15:16 +0000)]
[docs] Update CompilerWriterInfo.rst for MIPS

Update the URL of where the documentation can be found.

llvm-svn: 334720

6 years ago[ASAN] fix typos and disable long-object-path test for win32
Peter Wu [Thu, 14 Jun 2018 15:12:46 +0000 (15:12 +0000)]
[ASAN] fix typos and disable long-object-path test for win32

Glob patterns seem unsupported for commands executed by the emulated
shell (LIT_USE_INTERNAL_SHELL=1). Disable the test while that is being
addressed (a workaround such as "cd a-*" also does not work).

llvm-svn: 334719

6 years ago[Fixed Point Arithmetic] Addition of the remaining fixed point types and their satura...
Leonard Chan [Thu, 14 Jun 2018 14:53:51 +0000 (14:53 +0000)]
[Fixed Point Arithmetic] Addition of the remaining fixed point types and their saturated equivalents

This diff includes changes for the remaining _Fract and _Sat fixed point types.

```
signed short _Fract s_short_fract;
signed _Fract s_fract;
signed long _Fract s_long_fract;
unsigned short _Fract u_short_fract;
unsigned _Fract u_fract;
unsigned long _Fract u_long_fract;

// Aliased fixed point types
short _Accum short_accum;
_Accum accum;
long _Accum long_accum;
short _Fract short_fract;
_Fract fract;
long _Fract long_fract;

// Saturated fixed point types
_Sat signed short _Accum sat_s_short_accum;
_Sat signed _Accum sat_s_accum;
_Sat signed long _Accum sat_s_long_accum;
_Sat unsigned short _Accum sat_u_short_accum;
_Sat unsigned _Accum sat_u_accum;
_Sat unsigned long _Accum sat_u_long_accum;
_Sat signed short _Fract sat_s_short_fract;
_Sat signed _Fract sat_s_fract;
_Sat signed long _Fract sat_s_long_fract;
_Sat unsigned short _Fract sat_u_short_fract;
_Sat unsigned _Fract sat_u_fract;
_Sat unsigned long _Fract sat_u_long_fract;

// Aliased saturated fixed point types
_Sat short _Accum sat_short_accum;
_Sat _Accum sat_accum;
_Sat long _Accum sat_long_accum;
_Sat short _Fract sat_short_fract;
_Sat _Fract sat_fract;
_Sat long _Fract sat_long_fract;
```

This diff only allows for declaration of these fixed point types. Assignment and other operations done on fixed point types according to http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1169.pdf will be added in future patches.

Differential Revision: https://reviews.llvm.org/D46911

llvm-svn: 334718

6 years agoDebugNamesDWARFIndex: fix handling of compressed sections
Pavel Labath [Thu, 14 Jun 2018 14:41:30 +0000 (14:41 +0000)]
DebugNamesDWARFIndex: fix handling of compressed sections

This fixes a silly bug where we were accidentally freeing the memory
used to store the decompressed .debug_names data. I had actually
considered this scenario when writing the class and put appropriate
precautions in place -- I just failed to wire it all up correctly.

This was only an issue for compressed sections because in case of
uncompressed ones we would access the data straight out of the mmapped
object file.

llvm-svn: 334717

6 years ago[scudo] Make Secondary linker-initialized compliant
Kostya Kortchinsky [Thu, 14 Jun 2018 14:33:28 +0000 (14:33 +0000)]
[scudo] Make Secondary linker-initialized compliant

Summary:
As a follow up to D48142 for Scudo, switch the `SpinMutex` to its static
counterpart, and ensure zero-initialization by memset'ing the whole class.

Reviewers: alekseyshl

Reviewed By: alekseyshl

Subscribers: delcypher, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D48148

llvm-svn: 334716

6 years ago[EarlyCSE] Fix MSVC build. NFCI.
Simon Pilgrim [Thu, 14 Jun 2018 14:22:03 +0000 (14:22 +0000)]
[EarlyCSE] Fix MSVC build. NFCI.

MSVC doesn't let you assign different lambdas through a ternary operator.

llvm-svn: 334715

6 years ago[CostModel][AArch64] Add cost tests for ALTERNATE/SELECT style shuffle masks
Simon Pilgrim [Thu, 14 Jun 2018 14:20:20 +0000 (14:20 +0000)]
[CostModel][AArch64] Add cost tests for ALTERNATE/SELECT style shuffle masks

Precursor to fixing a regression with SLP vectorizer for supporting SELECT shuffles (vs the current ALTERNATE)

llvm-svn: 334714

6 years ago[MC] Move MCAssembler::dump into the correct cpp file. NFC
Sam Clegg [Thu, 14 Jun 2018 14:04:23 +0000 (14:04 +0000)]
[MC] Move MCAssembler::dump into the correct cpp file. NFC

Differential Revision: https://reviews.llvm.org/D46556

llvm-svn: 334713

6 years ago[clangd] FuzzyMatch: forbid tail-tail matches after a miss: [pat] !~ "panther"
Sam McCall [Thu, 14 Jun 2018 13:50:30 +0000 (13:50 +0000)]
[clangd] FuzzyMatch: forbid tail-tail matches after a miss: [pat] !~ "panther"

Summary:
This is a small code change but vastly reduces noise in code completion results.
The intent of allowing this was to let [sc] ~ "strncpy" and [strcpy] ~ "strncpy"
however the benefits for unsegmented names aren't IMO worth the costs.

Test cases should be representative of the changes here.

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, cfe-commits

Differential Revision: https://reviews.llvm.org/D47950

llvm-svn: 334712

6 years ago[clangd] Boost keyword completions.
Sam McCall [Thu, 14 Jun 2018 13:42:21 +0000 (13:42 +0000)]
[clangd] Boost keyword completions.

Summary: These have few signals other than being keywords, so the boost is high.

Reviewers: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, cfe-commits

Differential Revision: https://reviews.llvm.org/D48083

llvm-svn: 334711

6 years ago[DWARFv5] Tolerate files not all having an MD5 checksum.
Paul Robinson [Thu, 14 Jun 2018 13:38:20 +0000 (13:38 +0000)]
[DWARFv5] Tolerate files not all having an MD5 checksum.

In some cases, for example when compiling a preprocessed file, the
front-end is not able to provide an MD5 checksum for all files. When
that happens, omit the MD5 checksums from the final DWARF, because
DWARF doesn't have a way to indicate that some but not all files have
a checksum.

When assembling a .s file, and some but not all .file directives
provide an MD5 checksum, issue a warning and don't emit MD5 into the
DWARF.

Fixes PR37623.

Differential Revision: https://reviews.llvm.org/D48135

llvm-svn: 334710

6 years agoclang-format: Fix documentation generation
Francois Ferrand [Thu, 14 Jun 2018 13:32:14 +0000 (13:32 +0000)]
clang-format: Fix documentation generation

Summary:
It seems that the changes done to `ClangFormatStyleOptions.rst` @334408 are causing the generation of the documentation to fail, with the following error:

  Warning, treated as error:
    /llvm/tools/clang/docs/ClangFormatStyleOptions.rst:1060: WARNING: Definition list ends without a blank line; unexpected unindent.

This is due to missing indent in some code block, and fixed by this patch.

Reviewers: krasimir, djasper, klimek

Reviewed By: krasimir

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D48161

llvm-svn: 334709

6 years ago[mips] Correct predicates for MSA pseudo instructions
Simon Dardis [Thu, 14 Jun 2018 13:03:53 +0000 (13:03 +0000)]
[mips] Correct predicates for MSA pseudo instructions

llvm-svn: 334708

6 years ago[EarlyCSE] Propagate conditions of AND and OR instructions
Max Kazantsev [Thu, 14 Jun 2018 13:02:13 +0000 (13:02 +0000)]
[EarlyCSE] Propagate conditions of AND and OR instructions

This patches teaches EarlyCSE to figure out that if `and i1 %x, %y` is true then both
`%x` and `%y` are true in the taken branch, and if `or i1 %x, %y` is false then both
`%x` and `%y` are false in non-taken branch. Fix for PR37635.

Differential Revision: https://reviews.llvm.org/D47574
Reviewed By: reames

llvm-svn: 334707

6 years ago[TableGen] Move some shared_ptrs to avoid unnecessary copies (NFC).
Florian Hahn [Thu, 14 Jun 2018 11:56:19 +0000 (11:56 +0000)]
[TableGen] Move some shared_ptrs to avoid unnecessary copies (NFC).

Those changes were suggested post-commit for D47463.

llvm-svn: 334706

6 years ago[ELF][MIPS] Replace calls to MapVector::find by MapVector::lookup. NFC
Simon Atanasyan [Thu, 14 Jun 2018 11:53:31 +0000 (11:53 +0000)]
[ELF][MIPS] Replace calls to MapVector::find by MapVector::lookup. NFC

llvm-svn: 334705

6 years ago[DebugInfo] Check size of variable in ConvertDebugDeclareToDebugValue
Bjorn Pettersson [Thu, 14 Jun 2018 11:23:42 +0000 (11:23 +0000)]
[DebugInfo] Check size of variable in ConvertDebugDeclareToDebugValue

Summary:
Do not convert a DbgDeclare to DbgValue if the store
instruction only refer to a fragment of the variable
described by the DbgDeclare.

Problem was seen when for example having an alloca for an
array or struct, and there were stores to individual elements.
In the past we inserted a DbgValue intrinsics for each store,
just as if the store wrote the whole variable.

When handling store instructions we insert a DbgValue that
indicates that the variable is "undefined", as we do not know
which part of the variable that is updated by the store.

When ConvertDebugDeclareToDebugValue is used with a load/phi
instruction we assert that the referenced value is large enough
to cover the whole variable. Afaict this should be true for all
scenarios where those methods are used on trunk. If the assert
blows in the future I guess we could simply skip to insert a
dbg.value instruction.

In the future I think we should examine which part of the variable
that is accessed, and add a DbgValue instrinsic with an appropriate
DW_OP_LLVM_fragment expression.

Reviewers: dblaikie, aprantl, rnk

Reviewed By: aprantl

Subscribers: JDevlieghere, llvm-commits

Tags: #debug-info

Differential Revision: https://reviews.llvm.org/D48024

llvm-svn: 334704

6 years ago[ASAN] fix startup crash in dlsym for long paths since glibc 2.27
Peter Wu [Thu, 14 Jun 2018 10:42:54 +0000 (10:42 +0000)]
[ASAN] fix startup crash in dlsym for long paths since glibc 2.27

Summary:
Error messages for dlsym used to be stored on the stack, but since
commit 2449ae7b ("ld.so: Introduce struct dl_exception") in glibc 2.27
these are now stored on the heap (and thus use the dlsym alloc pool).

Messages look like "undefined symbol: __isoc99_printf\0/path/to/a.out".
With many missing library functions and long object paths, the pool is
quickly exhausted. Implement a simple mechanism to return freed memory
to the pool (clear it in case it is used for calloc).

Fixes https://github.com/google/sanitizers/issues/957

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D47995

llvm-svn: 334703

6 years agoFix PathMappingListTest on windows
Pavel Labath [Thu, 14 Jun 2018 10:31:06 +0000 (10:31 +0000)]
Fix PathMappingListTest on windows

r334615 changed the the value of FileSpec.IsRelative("/") for windows
path syntax. We previously considered it absolute but now it is
considered relative (I guess because it's interpretation depends on the
current drive).

This cause a failure in PathMappingList test, which assumed that "/"
will not get remapped as it is an absolute path. As this is no longer
true on windows, I replace "/" with a really absolute path.

llvm-svn: 334702

6 years ago[SLPVectorizer] Remove RawInstructionsData/getMainOpcode and merge into getSameOpcode
Simon Pilgrim [Thu, 14 Jun 2018 10:25:19 +0000 (10:25 +0000)]
[SLPVectorizer] Remove RawInstructionsData/getMainOpcode and merge into getSameOpcode

This is part of the work to cleanup use of 'alternate' ops so we can use the more general SK_Select shuffle type.

Only getSameOpcode calls getMainOpcode and much of the logic is repeated in both functions. This will require some reworking of D28907 but that patch has hit trouble and is unlikely to be completed anytime soon.

Differential Revision: https://reviews.llvm.org/D48120

llvm-svn: 334701

6 years ago[OpenCL] Support new/delete in Sema
Sven van Haastregt [Thu, 14 Jun 2018 09:51:54 +0000 (09:51 +0000)]
[OpenCL] Support new/delete in Sema

Reject uses of the default new/delete operators with a diagnostic
instead of a crash in OpenCL C++ mode and accept user-defined forms.

Differential Revision: https://reviews.llvm.org/D46651

llvm-svn: 334700

6 years ago[CostModel] Cleanup isSingleSourceVectorMask to match other shuffle matchers. NFCI.
Simon Pilgrim [Thu, 14 Jun 2018 09:48:19 +0000 (09:48 +0000)]
[CostModel] Cleanup isSingleSourceVectorMask to match other shuffle matchers. NFCI.

llvm-svn: 334699

6 years ago[CostModel] Recognise REVERSE shuffle mask if the elements come from the second src
Simon Pilgrim [Thu, 14 Jun 2018 09:35:00 +0000 (09:35 +0000)]
[CostModel] Recognise REVERSE shuffle mask if the elements come from the second src

llvm-svn: 334698

6 years agoFix includes in PlatformAppleSimulator.h
Pavel Labath [Thu, 14 Jun 2018 09:08:54 +0000 (09:08 +0000)]
Fix includes in PlatformAppleSimulator.h

This unbreaks the cmake build. Other plugins also use the include paths
starting with Plugins/..., so I am hoping this will work for the xcode build
too.

llvm-svn: 334697

6 years ago[AArch64] reverting rC334693 due to build failures
Luke Geeson [Thu, 14 Jun 2018 08:59:33 +0000 (08:59 +0000)]
[AArch64] reverting rC334693 due to build failures

llvm-svn: 334696

6 years agoSimplify the implementation of getCUDALibDeviceFunction. NFC.
Philip Pfaffe [Thu, 14 Jun 2018 08:54:55 +0000 (08:54 +0000)]
Simplify the implementation of getCUDALibDeviceFunction. NFC.

Summary:
The function is currently awfully complicated. Drop the IILE and use
StringRef over std::string.

Reviewers: Meinersbur, grosser, bollu

Reviewed By: Meinersbur

Subscribers: nemanjai, kbarton, bollu, llvm-commits, pollydev

Differential Revision: https://reviews.llvm.org/D48070

llvm-svn: 334695

6 years agoRemoved trunk-Codegen directory added in error
Luke Geeson [Thu, 14 Jun 2018 08:51:52 +0000 (08:51 +0000)]
Removed trunk-Codegen directory added in error

llvm-svn: 334694

6 years ago[AArch64] Added support for the vcvta_u16_f16 instrinsic for FP16 Armv8.2-A
Luke Geeson [Thu, 14 Jun 2018 08:28:56 +0000 (08:28 +0000)]
[AArch64] Added support for the vcvta_u16_f16 instrinsic for FP16 Armv8.2-A

llvm-svn: 334693

6 years ago[clang-format] Add SpaceBeforeCpp11BracedList option.
Hans Wennborg [Thu, 14 Jun 2018 08:01:09 +0000 (08:01 +0000)]
[clang-format] Add SpaceBeforeCpp11BracedList option.

WebKit C++ style for object initialization is as follows:

  Foo foo { bar };

Yet using clang-format -style=webkit changes this to:

  Foo foo{ bar };

As there is no existing combination of rules that will ensure a space
before a braced list in this fashion, this patch adds a new
SpaceBeforeCpp11BracedList rule.

Patch by Ross Kirsling!

Differential Revision: https://reviews.llvm.org/D46024

llvm-svn: 334692

6 years ago[llvm-exegesis] Use BenchmarkResult::Instructions instead of OpcodeName
Clement Courbet [Thu, 14 Jun 2018 06:57:52 +0000 (06:57 +0000)]
[llvm-exegesis] Use BenchmarkResult::Instructions instead of OpcodeName

Summary:
Get rid of OpcodeName.

To remove the opcode name from an old file:
```
cat old_file | sed '/opcode_name.*/d'
```

Reviewers: gchatelet

Subscribers: tschuett, llvm-commits

Differential Revision: https://reviews.llvm.org/D48121

llvm-svn: 334691

6 years ago[NFC] fix trivial typos in comments
Hiroshi Inoue [Thu, 14 Jun 2018 05:41:49 +0000 (05:41 +0000)]
[NFC] fix trivial typos in comments

llvm-svn: 334687

6 years ago[Sanitizer] fix compilation warning
David Carlier [Thu, 14 Jun 2018 04:51:26 +0000 (04:51 +0000)]
[Sanitizer] fix compilation warning

In most of systems, this field is a signed type but in some it is an unsigned.

Reviewers: vitalybuka

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D48118

llvm-svn: 334686

6 years ago[x86] fix mappings of cvttp2si/cvttp2ui x86 intrinsics to x86-specific nodes and...
Craig Topper [Thu, 14 Jun 2018 03:16:58 +0000 (03:16 +0000)]
[x86] fix mappings of cvttp2si/cvttp2ui x86 intrinsics to x86-specific nodes and isel patterns (PR37551)

Summary:
The tests in:
https://bugs.llvm.org/show_bug.cgi?id=37751
...show miscompiles because we wrongly mapped and folded x86-specific intrinsics into generic DAG nodes.

This patch corrects the mappings in X86IntrinsicsInfo.h and adds isel matching corresponding to the new patterns. The complete tests for the failure cases should be in avx-cvttp2si.ll and sse-cvttp2si.ll and avx512-cvttp2i.ll

Reviewers: RKSimon, gbedwell, spatel

Reviewed By: spatel

Subscribers: mcrosier, llvm-commits

Differential Revision: https://reviews.llvm.org/D47993

llvm-svn: 334685

6 years ago[analyzer] Re-enable C++17-specific RVO construction contexts.
Artem Dergachev [Thu, 14 Jun 2018 01:59:35 +0000 (01:59 +0000)]
[analyzer] Re-enable C++17-specific RVO construction contexts.

Not contexts themselves, but rather support for them in the analyzer.

Such construction contexts appear when C++17 mandatory copy elision occurs
while returning an object from a function, and presence of a destructor causes
a CXXBindTemporaryExpr to appear in the AST.

Additionally, such construction contexts may be chained, because a return-value
construction context doesn't really explain where the object is being returned
into, but only points to the parent stack frame, where the object may be
consumed by literally anything including another return statement. This
behavior is now modeled correctly by the analyzer as long as the object is not
returned beyond the boundaries of the analysis.

Differential Revision: https://reviews.llvm.org/D47405

llvm-svn: 334684

6 years ago[analyzer] Re-enable C++17-specific variable and member construction contexts.
Artem Dergachev [Thu, 14 Jun 2018 01:54:21 +0000 (01:54 +0000)]
[analyzer] Re-enable C++17-specific variable and member construction contexts.

Not contexts themselves, but rather support for them in the analyzer.

Such construction contexts appear when C++17 mandatory copy elision occurs
during initialization, and presence of a destructor causes a
CXXBindTemporaryExpr to appear in the AST.

Similar C++17-specific constructors for return values are still to be supported.

Differential Revision: https://reviews.llvm.org/D47351

llvm-svn: 334683

6 years ago[analyzer] Track class member initializer constructors path-sensitively.
Artem Dergachev [Thu, 14 Jun 2018 01:40:49 +0000 (01:40 +0000)]
[analyzer] Track class member initializer constructors path-sensitively.

The reasoning behind this change is similar to the previous commit, r334681.
Because members are already in scope when construction occurs, we are not
suffering from liveness problems, but we still want to figure out if the object
was constructed with construction context, because in this case we'll be able
to avoid trivial copy, which we don't always model perfectly. It'd also have
more importance when copy elision is implemented.

This also gets rid of the old CFG look-behind mechanism.

Differential Revision: https://reviews.llvm.org/D47350

llvm-svn: 334682

6 years ago[analyzer] pr37270: Track constructor target region, even if just a variable.
Artem Dergachev [Thu, 14 Jun 2018 01:32:46 +0000 (01:32 +0000)]
[analyzer] pr37270: Track constructor target region, even if just a variable.

The very idea of construction context implies that first the object is
constructed, and then later, in a separate moment of time, the constructed
object goes into scope, i.e. becomes "live".

Most construction contexts require path-sensitive tracking of the constructed
object region in order to compute the outer expressions accordingly before
the object becomes live.

Semantics of simple variable construction contexts don't immediately require
that such tracking happens in path-sensitive manner, but shortcomings of the
analyzer force us to track it path-sensitively as well. Namely, whether
construction context was available at all during construction is a
path-sensitive information. Additionally, path-sensitive tracking takes care of
our liveness problems that kick in as the temporal gap between construction and
going-into-scope becomes larger (eg., due to copy elision).

Differential Revision: https://reviews.llvm.org/D47305

llvm-svn: 334681

6 years agofix cmake include path.
Jason Molenda [Thu, 14 Jun 2018 01:29:18 +0000 (01:29 +0000)]
fix cmake include path.

llvm-svn: 334680

6 years ago[llvm-mca] Introduce the ExecuteStage (was originally the Scheduler class).
Matt Davis [Thu, 14 Jun 2018 01:20:18 +0000 (01:20 +0000)]
[llvm-mca] Introduce the ExecuteStage (was originally the Scheduler class).

Summary: This patch transforms the Scheduler class into the ExecuteStage.  Most of the logic remains.

Reviewers: andreadb, RKSimon, courbet

Reviewed By: andreadb

Subscribers: mgorny, javed.absar, tschuett, gbedwell, llvm-commits

Differential Revision: https://reviews.llvm.org/D47246

llvm-svn: 334679

6 years ago[analyzer] NFC: Merge code for finding and tracking construction target.
Artem Dergachev [Thu, 14 Jun 2018 01:20:12 +0000 (01:20 +0000)]
[analyzer] NFC: Merge code for finding and tracking construction target.

When analyzing C++ code, a common operation in the analyzer is to discover
target region for object construction by looking at CFG metadata ("construction
contexts"), and then track the region path-sensitively until object construction
is resolved, where the amount of information, again, depends on construction
context.

Scan construction context only once for both purposes.

Differential Revision: https://reviews.llvm.org/D47304

llvm-svn: 334678

6 years agoP0096R5, P0941R2: Update to match latest feature test macro specification.
Richard Smith [Thu, 14 Jun 2018 00:40:20 +0000 (00:40 +0000)]
P0096R5, P0941R2: Update to match latest feature test macro specification.

llvm-svn: 334677

6 years ago[libcxx] [test] Strip trailing whitespace. NFC.
Stephan T. Lavavej [Thu, 14 Jun 2018 00:12:20 +0000 (00:12 +0000)]
[libcxx] [test] Strip trailing whitespace. NFC.

llvm-svn: 334676

6 years ago[libcxx] [test] Update msvc_stdlib_force_include.hpp.
Stephan T. Lavavej [Thu, 14 Jun 2018 00:12:14 +0000 (00:12 +0000)]
[libcxx] [test] Update msvc_stdlib_force_include.hpp.

MSVC's STL removed _SCL_SECURE_NO_WARNINGS.

MSVC's STL implemented feature-test macros.

llvm-svn: 334675

6 years ago[www] Update cxx_status page for Rapperswil motions.
Richard Smith [Thu, 14 Jun 2018 00:05:28 +0000 (00:05 +0000)]
[www] Update cxx_status page for Rapperswil motions.

llvm-svn: 334674

6 years agoDriver: De-duplicate some code. NFCI.
Peter Collingbourne [Thu, 14 Jun 2018 00:03:41 +0000 (00:03 +0000)]
Driver: De-duplicate some code. NFCI.

llvm-svn: 334673

6 years ago[ELF][X86_64] Use R_GOTREL_FROM_END instead of R_GOTREL for R_X86_64_GOTOFF64
Fangrui Song [Wed, 13 Jun 2018 23:29:28 +0000 (23:29 +0000)]
[ELF][X86_64] Use R_GOTREL_FROM_END instead of R_GOTREL for R_X86_64_GOTOFF64

Summary:
R_X86_64_GOTOFF64: S + A - GOT
R_X86_64_GOTPC{32,64}: GOT + A - P (R_GOTONLY_PC_FROM_END)

R_X86_64_GOTOFF64 should use R_GOTREL_FROM_END so that in conjunction with
R_X86_64_GOTPC{32,64}, the `GOT` term is neutralized. This also matches
the handling of R_386_GOTOFF (S + A - GOT).

Reviewers: ruiu, espindola

Subscribers: emaste, arichardson, llvm-commits

Differential Revision: https://reviews.llvm.org/D48095

llvm-svn: 334672

6 years agodocs: Add a missing LTO visibility reference.
Peter Collingbourne [Wed, 13 Jun 2018 23:21:02 +0000 (23:21 +0000)]
docs: Add a missing LTO visibility reference.

llvm-svn: 334671

6 years ago[ASAN] Fix fputs interception for 32-bit macOS
Peter Wu [Wed, 13 Jun 2018 23:19:21 +0000 (23:19 +0000)]
[ASAN] Fix fputs interception for 32-bit macOS

On 32-bit macOS, "_fputs$UNIX2003" is called instead of "fputs" and the
"fgets_fputs" test fails. Apparently previous versions still passed the
test due to the internal implementation calling "strlen", but that does
not seem to be the case with macOS 10.13.3. Fixes r334450.

llvm-svn: 334670

6 years agodocs: Correct some misstatements in the control flow integrity docs.
Peter Collingbourne [Wed, 13 Jun 2018 23:18:26 +0000 (23:18 +0000)]
docs: Correct some misstatements in the control flow integrity docs.

These were true at one point but haven't been true for a long time.

llvm-svn: 334669

6 years ago[FileSpec] Make style argument mandatory for SetFile. NFC
Jonas Devlieghere [Wed, 13 Jun 2018 22:54:52 +0000 (22:54 +0000)]
[FileSpec] Make style argument mandatory for SetFile. NFC

Update SetFile uses in the unittests.

llvm-svn: 334668

6 years agoMove the header file to be in the same new place as the .mm file.
Jason Molenda [Wed, 13 Jun 2018 22:37:01 +0000 (22:37 +0000)]
Move the header file to be in the same new place as the .mm file.

llvm-svn: 334667

6 years agoFix group entry.
Jason Molenda [Wed, 13 Jun 2018 22:33:27 +0000 (22:33 +0000)]
Fix group entry.

llvm-svn: 334666

6 years agoAMDGPU/GlobalISel: Implement select() for 32-bit G_FADD and G_FMUL
Tom Stellard [Wed, 13 Jun 2018 22:30:47 +0000 (22:30 +0000)]
AMDGPU/GlobalISel: Implement select() for 32-bit G_FADD and G_FMUL

Reviewers: arsenm, nhaehnle

Reviewed By: arsenm

Subscribers: kzhuravl, wdng, yaxunl, rovka, kristof.beyls, dstuttard, tpr, t-tye, llvm-commits

Differential Revision: https://reviews.llvm.org/D46171

llvm-svn: 334665

6 years ago[FileSpec] Make style argument mandatory for SetFile. NFC
Jonas Devlieghere [Wed, 13 Jun 2018 22:23:48 +0000 (22:23 +0000)]
[FileSpec] Make style argument mandatory for SetFile. NFC

Fix SetFile uses in hosts that I missed in r334663.

llvm-svn: 334664

6 years ago[FileSpec] Make style argument mandatory for SetFile. NFC
Jonas Devlieghere [Wed, 13 Jun 2018 22:08:14 +0000 (22:08 +0000)]
[FileSpec] Make style argument mandatory for SetFile. NFC

SetFile has an optional style argument which defaulted to the native
style. This patch makes that argument mandatory so clients of the
FileSpec class are forced to think about the correct syntax.

At the same time this introduces a (protected) convenience method to
update the file from within the FileSpec class that keeps the current
style.

These two changes together prevent a potential pitfall where the style
might be forgotten, leading to the path being updated and the style
unintentionally being changed to the host style.

llvm-svn: 334663

6 years agoFix macos xcode build.
Jason Molenda [Wed, 13 Jun 2018 22:05:38 +0000 (22:05 +0000)]
Fix macos xcode build.

llvm-svn: 334662

6 years ago[test] Fix a typo in a test case [NFCI]
Tobias Grosser [Wed, 13 Jun 2018 21:46:29 +0000 (21:46 +0000)]
[test] Fix a typo in a test case [NFCI]

Also remove an undef value that does not add any value to the test case.

llvm-svn: 334661

6 years ago[Sanitizers] Make sanitizer allocator linker-initialize compliant.
Alex Shlyapnikov [Wed, 13 Jun 2018 21:45:01 +0000 (21:45 +0000)]
[Sanitizers] Make sanitizer allocator linker-initialize compliant.

Summary:
These four SpinMutex ctors was the only code executed in the ctor for
the static __asan::Allocator instance (same for the other sanitizers
allocators), which is supposed to be fully linker-initialized.

Also, when the global ctor for this allocator instance is executed,
this instance might already be initialized by __asan_init called from
.preinit_array.

Issue: https://github.com/google/sanitizers/issues/194

Reviewers: morehouse, eugenis, cryptoad

Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D48142

llvm-svn: 334660

6 years agoDisable MSan tests of prlimit on FreeBSD
Dimitry Andric [Wed, 13 Jun 2018 21:37:49 +0000 (21:37 +0000)]
Disable MSan tests of prlimit on FreeBSD

Like NetBSD, FreeBSD does not have prlimit(2), so do not attempt to use
it during the MSan tests.

llvm-svn: 334659

6 years agoRevert "Enable ThreadPool to queue tasks that return values."
Zachary Turner [Wed, 13 Jun 2018 21:24:19 +0000 (21:24 +0000)]
Revert "Enable ThreadPool to queue tasks that return values."

This is failing to compile when LLVM_ENABLE_THREADS is false,
and the fix is not immediately obvious, so reverting while I look
into it.

llvm-svn: 334658

6 years agoReland: [Timers] Use the pass argument name for JSON keys in time-passes
Francis Visoiu Mistrih [Wed, 13 Jun 2018 21:03:56 +0000 (21:03 +0000)]
Reland: [Timers] Use the pass argument name for JSON keys in time-passes

When using clang --save-stats -mllvm -time-passes, both timers and stats
end up in the same json file.

We could end up with things like:

{
  "asm-printer.EmittedInsts": 1,
  "time.pass.Virtual Register Map.wall": 2.9015541076660156e-04,
  "time.pass.Virtual Register Map.user": 2.0500000000000379e-04,
  "time.pass.Virtual Register Map.sys": 8.5000000000001741e-05,
}

This patch makes use of the pass argument name (if available) in the
JSON key to end up with things like:

{
  "asm-printer.EmittedInsts": 1,
  "time.pass.virtregmap.wall": 2.9015541076660156e-04,
  "time.pass.virtregmap.user": 2.0500000000000379e-04,
  "time.pass.virtregmap.sys": 8.5000000000001741e-05,
}

This also helps avoiding to write another JSON printer to handle all the
cases that we could have in our pass names.

Fixed test instead of adding a new one originally from r334649.

Differential Revision: https://reviews.llvm.org/D48109

llvm-svn: 334657

6 years ago[TableGen] Make getOnlyTree return a const ref (NFC)
Florian Hahn [Wed, 13 Jun 2018 20:59:53 +0000 (20:59 +0000)]
[TableGen] Make getOnlyTree return a const ref (NFC)

This avoids some unnecessary copies of shared_ptrs.
Those changes were suggested post-commit for D47463.

llvm-svn: 334656

6 years agoUpdate comments of CheckedArithmetic API based on Philip Reames feedback.
George Karpenkov [Wed, 13 Jun 2018 20:48:53 +0000 (20:48 +0000)]
Update comments of CheckedArithmetic API based on Philip Reames feedback.

llvm-svn: 334655

6 years ago[compiler-rt] Use CMAKE_LINKER instead of hardcoding ld
Shoaib Meenai [Wed, 13 Jun 2018 20:48:30 +0000 (20:48 +0000)]
[compiler-rt] Use CMAKE_LINKER instead of hardcoding ld

Respect a custom linker path provided by the user if one is present
(otherwise CMAKE_LINKER will have been set to the right value by CMake).

llvm-svn: 334654

6 years ago[WinASan] Don't instrument globals in sections containing '$'
Reid Kleckner [Wed, 13 Jun 2018 20:47:21 +0000 (20:47 +0000)]
[WinASan] Don't instrument globals in sections containing '$'

Such globals are very likely to be part of a sorted section array, such
the .CRT sections used for dynamic initialization. The uses its own
sorted sections called ATL$__a, ATL$__m, and ATL$__z. Instead of special
casing them, just look for the dollar sign, which is what invokes linker
section sorting for COFF.

Avoids issues with ASan and the ATL uncovered after we started
instrumenting comdat globals on COFF.

llvm-svn: 334653

6 years agoSimplify test from r334650
Erich Keane [Wed, 13 Jun 2018 20:47:12 +0000 (20:47 +0000)]
Simplify test from r334650

No reason to have the 'bool' as an intermediary value,
simply use the fact that curley braces enforce eval order.

llvm-svn: 334652

6 years agoRevert r334649 "[Timers] Use the pass argument name for JSON keys in time-passes"
Francis Visoiu Mistrih [Wed, 13 Jun 2018 20:44:02 +0000 (20:44 +0000)]
Revert r334649 "[Timers] Use the pass argument name for JSON keys in time-passes"

This reverts commit r334649.

This breaks a test.

llvm-svn: 334651

6 years agoImplement constexpr __builtin_*_overflow
Erich Keane [Wed, 13 Jun 2018 20:43:27 +0000 (20:43 +0000)]
Implement constexpr __builtin_*_overflow

As requested here:https://bugs.llvm.org/show_bug.cgi?id=37633
permit the __builtin_*_overflow builtins in constexpr functions.

Differential Revision: https://reviews.llvm.org/D48040

llvm-svn: 334650

6 years ago[Timers] Use the pass argument name for JSON keys in time-passes
Francis Visoiu Mistrih [Wed, 13 Jun 2018 20:09:59 +0000 (20:09 +0000)]
[Timers] Use the pass argument name for JSON keys in time-passes

When using clang --save-stats -mllvm -time-passes, both timers and stats
end up in the same json file.

We could end up with things like:

{
  "asm-printer.EmittedInsts": 1,
  "time.pass.Virtual Register Map.wall": 2.9015541076660156e-04,
  "time.pass.Virtual Register Map.user": 2.0500000000000379e-04,
  "time.pass.Virtual Register Map.sys": 8.5000000000001741e-05,
}

This patch makes use of the pass argument name (if available) in the
JSON key to end up with things like:

{
  "asm-printer.EmittedInsts": 1,
  "time.pass.virtregmap.wall": 2.9015541076660156e-04,
  "time.pass.virtregmap.user": 2.0500000000000379e-04,
  "time.pass.virtregmap.sys": 8.5000000000001741e-05,
}

This also helps avoiding to write another JSON printer to handle all the
cases that we could have in our pass names.

Differential Revision: https://reviews.llvm.org/D48109

llvm-svn: 334649

6 years ago[X86] Move RCPSSr_Int, RSQRTSSr_Int, SQRTSDr_Int, SQRTSSr_Int to the correct load...
Craig Topper [Wed, 13 Jun 2018 20:03:42 +0000 (20:03 +0000)]
[X86] Move RCPSSr_Int, RSQRTSSr_Int, SQRTSDr_Int, SQRTSSr_Int to the correct load folding table.

They were in the operand 1 folding table, but their foldable operand is operand 2.

llvm-svn: 334648

6 years agoRemove needless bitwise-AND.
Rui Ueyama [Wed, 13 Jun 2018 19:58:33 +0000 (19:58 +0000)]
Remove needless bitwise-AND.

Because applyMask ignores upper bits, we don't need to mask them.

llvm-svn: 334647

6 years agoMake a function non-member because it doesn't depend on any class.
Rui Ueyama [Wed, 13 Jun 2018 19:50:10 +0000 (19:50 +0000)]
Make a function non-member because it doesn't depend on any class.

llvm-svn: 334646