platform/upstream/llvm.git
5 years ago[Target] Fix formatting and whitespace (NFC)
Jonas Devlieghere [Fri, 19 Jul 2019 00:56:26 +0000 (00:56 +0000)]
[Target] Fix formatting and whitespace (NFC)

llvm-svn: 366522

5 years ago[Target] Return an llvm::Expected from GetEntryPointAddress (NFC)
Jonas Devlieghere [Fri, 19 Jul 2019 00:52:08 +0000 (00:52 +0000)]
[Target] Return an llvm::Expected from  GetEntryPointAddress (NFC)

Instead of taking a status and potentially returning an invalid address,
return an expected which is guaranteed to contain a valid address.

llvm-svn: 366521

5 years agocheck for interrupt from fgets on Windows
Nathan Lanza [Fri, 19 Jul 2019 00:40:37 +0000 (00:40 +0000)]
check for interrupt from fgets on Windows

Windows does not have the error EINTR when a blocking syscall is
interrupted by a signal. The ReadFile API that fgets is implemented
with instead use ERROR_OPERATION_ABORTED. Check for that after fgets.

llvm-svn: 366520

5 years ago[NFC] Remove instances of unused ClangASTContext header
Alex Langford [Fri, 19 Jul 2019 00:39:51 +0000 (00:39 +0000)]
[NFC] Remove instances of unused ClangASTContext header

llvm-svn: 366519

5 years agoFix formatting of inline argument comments. NFC.
Sam Clegg [Fri, 19 Jul 2019 00:30:23 +0000 (00:30 +0000)]
Fix formatting of inline argument comments. NFC.

Also, remove the final arg from ItaniumCXXABI in the PNaCl case since
its not needed.

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

llvm-svn: 366518

5 years ago[Commands] Remove unused header from CommandObjectFrame
Alex Langford [Fri, 19 Jul 2019 00:26:31 +0000 (00:26 +0000)]
[Commands] Remove unused header from CommandObjectFrame

llvm-svn: 366517

5 years ago[GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legali...
Amara Emerson [Fri, 19 Jul 2019 00:24:45 +0000 (00:24 +0000)]
[GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later.

I plan on adding memcpy optimizations in the GlobalISel pipeline, but we can't
do that unless we delay lowering to actual function calls. This patch changes
the translator to generate G_INTRINSIC_W_SIDE_EFFECTS for these functions, and
then have each target specify that using the new custom legalizer for intrinsics
hook that they want it expanded it a libcall.

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

llvm-svn: 366516

5 years ago[cmake] Fix typo where a varible was checked for Apple instead of Darwin
Nathan Lanza [Fri, 19 Jul 2019 00:20:58 +0000 (00:20 +0000)]
[cmake] Fix typo where a varible was checked for Apple instead of Darwin

Subscribers: mgorny, llvm-commits

Tags: #llvm

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

llvm-svn: 366515

5 years ago[cmake] Convert the NATIVE llvm build process to be project agnostic
Nathan Lanza [Fri, 19 Jul 2019 00:10:06 +0000 (00:10 +0000)]
[cmake] Convert the NATIVE llvm build process to be project agnostic

lldb recently added a tablegen tool. In order to properly cross compile
lldb standalone there needs to be a mechanism to generate the native
lldb build, analgous to what's done for the NATIVE llvm build. Thus,
we can simply modify this setup to allow for any project to be used.

llvm-svn: 366514

5 years ago[cmake] Update NATIVE build variables to account for standalone changes
Nathan Lanza [Thu, 18 Jul 2019 23:40:23 +0000 (23:40 +0000)]
[cmake] Update NATIVE build variables to account for standalone changes

Summary:
LLDB_PATH_TO_{CLANG,LLVM}_BUILD were removed and replaced with
{LLVM,Clang}_DIR. Adjust the NATIVE build to account for this.

Subscribers: mgorny

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

llvm-svn: 366513

5 years agoReapply [llvm-lipo] Implement -create (with hardcoded alignments)
Shoaib Meenai [Thu, 18 Jul 2019 22:48:38 +0000 (22:48 +0000)]
Reapply [llvm-lipo] Implement -create (with hardcoded alignments)

This reapplies r366142 with a fix for the failing Windows test.

Original commit message:

Creates universal binary output file from input files. Currently uses
hard coded value for alignment.  Want to get the create functionality
approved before implementing the alignment function.

Patch by Anusha Basana <anusha.basana@gmail.com>

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

llvm-svn: 366512

5 years agoUpdate the SimpleJIT class in the clang-interpreter example to use ORCv2.
Lang Hames [Thu, 18 Jul 2019 22:47:18 +0000 (22:47 +0000)]
Update the SimpleJIT class in the clang-interpreter example to use ORCv2.

This will remove the ORCv1 deprecation warnings.

llvm-svn: 366511

5 years agoUpdate polly test for SCEV change.
Eli Friedman [Thu, 18 Jul 2019 22:35:45 +0000 (22:35 +0000)]
Update polly test for SCEV change.

r366419 adds nsw to more SCEV expressions, which allows polly to
make more aggressive assumptions about the input expressions.

llvm-svn: 366510

5 years ago[clang-scan-deps] Dependency directives source minimizer: handle #pragma once
Alex Lorenz [Thu, 18 Jul 2019 22:33:14 +0000 (22:33 +0000)]
[clang-scan-deps] Dependency directives source minimizer: handle #pragma once

We should re-emit `#pragma once` to ensure the preprocessor will
still honor it when running on minimized sources.

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

llvm-svn: 366509

5 years agoRemember to sort the Xcode project!!!
Jim Ingham [Thu, 18 Jul 2019 22:25:56 +0000 (22:25 +0000)]
Remember to sort the Xcode project!!!

llvm-svn: 366508

5 years agoAdd an expectedFailure test for type finding.
Jim Ingham [Thu, 18 Jul 2019 22:21:16 +0000 (22:21 +0000)]
Add an expectedFailure test for type finding.

When two .c files define a type of the same name, lldb
just picks one and uses it regardless of context.  That is
not correct.  When stopped in a frame in one of the .c files
that define this type, it should use that local definition.

This commit just adds a test that checks for the correct
behavior.  It is currently xfailed.

llvm-svn: 366507

5 years agoThe switch to table-genning command options broke
Jim Ingham [Thu, 18 Jul 2019 22:18:50 +0000 (22:18 +0000)]
The switch to table-genning command options broke
the xcode project.  This gets it a little closer to
working, but I still have to figure out how to generate
the lldb tablegen backend from the Xcode project.

llvm-svn: 366506

5 years ago[AMDGPU] Drop Reg32 and use regular AsmName
Stanislav Mekhanoshin [Thu, 18 Jul 2019 22:18:33 +0000 (22:18 +0000)]
[AMDGPU] Drop Reg32 and use regular AsmName

This allows to reduce generated AMDGPUGenAsmWriter.inc by ~100Kb.

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

llvm-svn: 366505

5 years ago[WebAssembly] Use passive segments by default when memory is shared
Thomas Lively [Thu, 18 Jul 2019 21:50:24 +0000 (21:50 +0000)]
[WebAssembly] Use passive segments by default when memory is shared

Summary:
This change makes it so that passing --shared-memory is all a user
needs to do to get proper multithreaded code. This default can still
be explicitly overridden for any reason using --passive-segments and
--active-segments.

Reviewers: sbc100, quantum

Subscribers: dschuff, jgravelle-google, aheejin, sunfish, jfb, llvm-commits

Tags: #llvm

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

llvm-svn: 366504

5 years ago[GlobalISel][AArch64] Add support for base register + offset register loads
Jessica Paquette [Thu, 18 Jul 2019 21:50:11 +0000 (21:50 +0000)]
[GlobalISel][AArch64] Add support for base register + offset register loads

Add support for folding G_GEPs into loads of the form

```
ldr reg, [base, off]
```

when possible. This can save an add before the load. Currently, this is only
supported for loads of 64 bits into 64 bit registers.

Add a new addressing mode function, `selectAddrModeRegisterOffset` which
performs this folding when it is profitable.

Also add a test for addressing modes for G_LOAD.

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

llvm-svn: 366503

5 years agoCodeGen: Allow !associated metadata to point to aliases.
Peter Collingbourne [Thu, 18 Jul 2019 21:37:16 +0000 (21:37 +0000)]
CodeGen: Allow !associated metadata to point to aliases.

This is a small extension of !associated, mostly useful for the implementation
convenience of instrumentation passes that RAUW globals with aliases, such
as LowerTypeTests.

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

llvm-svn: 366502

5 years agoRevert [X86] EltsFromConsecutiveLoads - support common source loads
Reid Kleckner [Thu, 18 Jul 2019 21:26:41 +0000 (21:26 +0000)]
Revert [X86] EltsFromConsecutiveLoads - support common source loads

This reverts r366441 (git commit 48104ef7c9c653bbb732b66d7254957389fea337)

This causes clang to fail to compile some file in Skia. Reduction soon.

llvm-svn: 366501

5 years ago[WebAssembly] fix bug in finding .tdata segment
Guanzhong Chen [Thu, 18 Jul 2019 21:18:24 +0000 (21:18 +0000)]
[WebAssembly] fix bug in finding .tdata segment

Summary: Fix bug in `wasm-ld`'s `Writer::createInitTLSFunction` that only finds `.tdata` if it's the first section.

Reviewers: tlively, aheejin, sbc100

Reviewed By: sbc100

Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits

Tags: #llvm

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

llvm-svn: 366500

5 years ago[WebAssembly] Fix __builtin_wasm_tls_base intrinsic
Guanzhong Chen [Thu, 18 Jul 2019 21:17:52 +0000 (21:17 +0000)]
[WebAssembly] Fix __builtin_wasm_tls_base intrinsic

Summary:
Properly generate the outchain for the `__builtin_wasm_tls_base` intrinsic.

Also marked the intrinsic pure, per @sunfish's suggestion.

Reviewers: tlively, aheejin, sbc100, sunfish

Reviewed By: tlively

Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits, sunfish

Tags: #clang, #llvm

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

llvm-svn: 366499

5 years ago[cmake] Only run llvm-codesign if targetting apple on an apple host
Nathan Lanza [Thu, 18 Jul 2019 21:14:26 +0000 (21:14 +0000)]
[cmake] Only run llvm-codesign if targetting apple on an apple host

Summary:
Other platforms don't have the capability to perform llvm_codesign
step. If LLVM_CODESIGNING_IDENTITY is set then this chunk of code would
attempt to codesign if the target was Apple. But when cross compiling
to Darwin from Linux, for example, this step would fail. So test if the
host is Apple as well.

Subscribers: mgorny, llvm-commits

Tags: #llvm

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

llvm-svn: 366498

5 years agoFix typo in r366494. Spotted by Yuanfang Chen.
Peter Collingbourne [Thu, 18 Jul 2019 21:03:37 +0000 (21:03 +0000)]
Fix typo in r366494. Spotted by Yuanfang Chen.

llvm-svn: 366497

5 years agoRemove the static initialize introduced in r365099
Steven Wu [Thu, 18 Jul 2019 21:01:21 +0000 (21:01 +0000)]
Remove the static initialize introduced in r365099

Summary:
Some polish for r365099 which adds a static initializer to
MachOObjectFile. Remove it by moving it to file scope.

Reviewers: smeenai, alexshap, compnerd, mtrent, anushabasana

Reviewed By: smeenai

Subscribers: hiraditya, jkorous, dexonsmith, llvm-commits

Tags: #llvm

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

llvm-svn: 366496

5 years ago[Breakpoint] Replace use of ClangASTContext with TypeSystem
Alex Langford [Thu, 18 Jul 2019 20:58:24 +0000 (20:58 +0000)]
[Breakpoint] Replace use of ClangASTContext with TypeSystem

llvm-svn: 366495

5 years agoIR: Teach Constant::needsRelocation() that relative pointers don't need to be relocated.
Peter Collingbourne [Thu, 18 Jul 2019 20:56:21 +0000 (20:56 +0000)]
IR: Teach Constant::needsRelocation() that relative pointers don't need to be relocated.

This causes sections with relative pointers to be marked as read only,
which means that they won't end up sharing pages with writable data.

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

llvm-svn: 366494

5 years agoFall back to dyld's _dyld_start when no LC_MAIN / main() func can be found
Jason Molenda [Thu, 18 Jul 2019 20:55:24 +0000 (20:55 +0000)]
Fall back to dyld's _dyld_start when no LC_MAIN / main() func can be found

The new DriverKit user-land kernel drivers in macOS 10.15 / Catalina
do not have a main() function or an LC_MAIN load command.  lldb uses
the address of main() as the return address for inferior function
calls; it puts a breakpoint on main, runs the inferior function call,
and when the main() breakpoint is hit, lldb knows unambiguously that
the inferior function call ran to completion - no other function calls
main.

This change hoists the logic for finding the "entry address" from
ThreadPlanCallFunction to Target.  It changes the logic to first
try to get the entry address from the main executable module,
but if that module does not have one, it will iterate through all
modules looking for an entry address.

The patch also adds code to ObjectFileMachO to use dyld's
_dyld_start function as an entry address.

<rdar://problem/52343958>

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

llvm-svn: 366493

5 years ago[NFC][pstl] Run clang-format on the sources, including the tests
Louis Dionne [Thu, 18 Jul 2019 20:22:28 +0000 (20:22 +0000)]
[NFC][pstl] Run clang-format on the sources, including the tests

llvm-svn: 366492

5 years ago[pstl] Fix test that checked the version number after version bump
Louis Dionne [Thu, 18 Jul 2019 20:21:59 +0000 (20:21 +0000)]
[pstl] Fix test that checked the version number after version bump

llvm-svn: 366491

5 years ago[pstl] Declare main() as returning int, not int32_t
Louis Dionne [Thu, 18 Jul 2019 20:21:52 +0000 (20:21 +0000)]
[pstl] Declare main() as returning int, not int32_t

llvm-svn: 366490

5 years ago[FileSpecList] Add EmplaceBack method (NFC)
Jonas Devlieghere [Thu, 18 Jul 2019 20:19:24 +0000 (20:19 +0000)]
[FileSpecList] Add EmplaceBack method (NFC)

Instead of having to write FileSpecList::Append(FileSpec(args)) you can
now call FileSpecList::EmplaceBack(args), similar to
std::vector<>::emplace_back.

llvm-svn: 366489

5 years ago[ASan] Support `{f}puts(NULL)` on Darwin, part 2
Julian Lettner [Thu, 18 Jul 2019 20:14:50 +0000 (20:14 +0000)]
[ASan] Support `{f}puts(NULL)` on Darwin, part 2

Add braces around macro `{ MACRO(); }` to guard against macros that
expand to multiple statements.

llvm-svn: 366488

5 years agogn build: Merge r366458.
Peter Collingbourne [Thu, 18 Jul 2019 20:14:16 +0000 (20:14 +0000)]
gn build: Merge r366458.

llvm-svn: 366487

5 years agoFileSystem: Check for DTTOIF alone, not _DIRENT_HAVE_D_TYPE
Jordan Rose [Thu, 18 Jul 2019 20:05:11 +0000 (20:05 +0000)]
FileSystem: Check for DTTOIF alone, not _DIRENT_HAVE_D_TYPE

While 'd_type' is a non-standard extension to `struct dirent`, only
glibc signals its presence with a macro '_DIRENT_HAVE_D_TYPE'.
However, any platform with 'd_type' also includes a way to convert to
mode_t values using the macro 'DTTOIF', so we can check for that alone
and still be confident that the 'd_type' member exists.

(If this turns out to be wrong, I'll go back and set up an actual
CMake check.)

I couldn't think of how to write a test for this, because I couldn't
think of how to test that a 'stat' call doesn't happen without
controlling the filesystem or intercepting 'stat', and there's no good
cross-platform way to do that that I know of.

Follow-up (almost a year later) to r342089.

rdar://problem/50592673
https://reviews.llvm.org/D64940

llvm-svn: 366486

5 years ago[ORC] Suppress an ORCv1 deprecation warning.
Lang Hames [Thu, 18 Jul 2019 19:55:42 +0000 (19:55 +0000)]
[ORC] Suppress an ORCv1 deprecation warning.

llvm-svn: 366485

5 years ago[libc++] Add C++17 deduction guides for std::function
Louis Dionne [Thu, 18 Jul 2019 19:50:56 +0000 (19:50 +0000)]
[libc++] Add C++17 deduction guides for std::function

Summary: http://llvm.org/PR39606

Reviewers: Quuxplusone

Subscribers: christof, dexonsmith, libcxx-commits

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

llvm-svn: 366484

5 years ago[OPENMP]Fix sharing of threadprivate variables with TLS support.
Alexey Bataev [Thu, 18 Jul 2019 19:40:24 +0000 (19:40 +0000)]
[OPENMP]Fix sharing of threadprivate variables with TLS support.

If the threadprivate variable is used in the copyin clause on inner
parallel directive with TLS support, we capture this variable in all
outer OpenMP scopes. It leads to the fact that in all scopes we're
working with the original variable, not the threadprivate copies.

llvm-svn: 366483

5 years ago[compiler-rt] Complete revert of r366413
Matthew Voss [Thu, 18 Jul 2019 18:39:06 +0000 (18:39 +0000)]
[compiler-rt] Complete revert of r366413

Incomplete revert. Mea culpa. This test is failing on sanitizer-x86_64-linux
and our internal CI.

llvm-svn: 366482

5 years agoFix C++ modules build
Raphael Isemann [Thu, 18 Jul 2019 18:33:40 +0000 (18:33 +0000)]
Fix C++ modules build

llvm-svn: 366344 missed an include that broke the LLVM_ENABLE_MODULES
build.

llvm-svn: 366481

5 years ago[RISCV] Hard float ABI support
Alex Bradbury [Thu, 18 Jul 2019 18:29:59 +0000 (18:29 +0000)]
[RISCV] Hard float ABI support

The RISC-V hard float calling convention requires the frontend to:

* Detect cases where, once "flattened", a struct can be passed using
int+fp or fp+fp registers under the hard float ABI and coerce to the
appropriate type(s)
* Track usage of GPRs and FPRs in order to gate the above, and to
determine when signext/zeroext attributes must be added to integer
scalars

This patch attempts to do this in compliance with the documented ABI,
and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
author of that code I've tagged you as reviewer for initial feedback on
my usage.

Note that a previous version of the ABI indicated that when passing an
int+fp struct using a GPR+FPR, the int would need to be sign or
zero-extended appropriately. GCC never did this and the ABI was changed,
which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
handle sign/zero-extension attributes.

Re-landed after backing out 366450 due to missed hunks.

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

llvm-svn: 366480

5 years ago[COFF] Change a variable type to be const in the HeapAllocSite map.
Amy Huang [Thu, 18 Jul 2019 18:22:52 +0000 (18:22 +0000)]
[COFF] Change a variable type to be const in the HeapAllocSite map.

llvm-svn: 366479

5 years ago[lldb][swig] Fix autodocs flag parsing
Jordan Rupprecht [Thu, 18 Jul 2019 18:18:51 +0000 (18:18 +0000)]
[lldb][swig] Fix autodocs flag parsing

r366471 added "-features autodoc" without a trailing comment, leading to `Unrecognized option -features autodoc-threads` due to implicit string concatenation. Add a comma to fix that.

Also separate into "-features" and "autodoc", otherwise it gets parsed as a single "-features autodoc" flag which is also not recognized (it must be two separate CLI args).

llvm-svn: 366478

5 years ago[FPEnv] Teach the IRBuilder about constrained FPTrunc and FPExt
Kevin P. Neal [Thu, 18 Jul 2019 18:01:57 +0000 (18:01 +0000)]
[FPEnv] Teach the IRBuilder about constrained FPTrunc and FPExt

The IRBuilder doesn't know that FPTrunc and FPExt have constrained
equivalents. Add the support by building on the strict FP mode now
present in the IRBuilder.

Reviewed by: John McCall
Approved by: John McCall
Differential Revision: https://reviews.llvm.org/D64934

llvm-svn: 366477

5 years agoAdd offsetof support to expression evaluator.
Raphael Isemann [Thu, 18 Jul 2019 17:58:04 +0000 (17:58 +0000)]
Add offsetof support to expression evaluator.

Summary:
We currently don't support offsetof in the expression evaluator as it is implemented as a macro
(which then calls __builtin_offsetof) in stddef.h. The best solution would be to include that
header (or even better, import Clang's builtin module), but header-parsing and
(cross-platform) importing modules is not ready yet.

Until we get this working with modules I would say we add the macro to our existing macro list
as we already do with other macros from stddef.h/stdint.h. We should be able to drop all of them
once we can import the relevant modules by default.

rdar://26040641

Reviewers: shafik, davide

Reviewed By: davide

Subscribers: clayborg, lldb-commits

Tags: #lldb

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

llvm-svn: 366476

5 years ago[WebAssembly] Implement __builtin_wasm_tls_base intrinsic
Guanzhong Chen [Thu, 18 Jul 2019 17:53:22 +0000 (17:53 +0000)]
[WebAssembly] Implement __builtin_wasm_tls_base intrinsic

Summary:
Add `__builtin_wasm_tls_base` so that LeakSanitizer can find the thread-local
block and scan through it for memory leaks.

Reviewers: tlively, aheejin, sbc100

Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

llvm-svn: 366475

5 years ago[OPENMP]Provide correct data sharing attributes for loop control
Alexey Bataev [Thu, 18 Jul 2019 17:49:13 +0000 (17:49 +0000)]
[OPENMP]Provide correct data sharing attributes for loop control
variables.

Loop control variables are private in loop-based constructs and we shall
take this into account when generate the code for inner constructs.
Currently, those variables are reported as shared in many cases. Moved
the analysis of the data-sharing attributes of the loop control variable
to an early semantic stage to correctly handle their attributes.

llvm-svn: 366474

5 years ago[LibTooling] Relax Transformer to allow rewriting macro expansions
Yitzhak Mandelbaum [Thu, 18 Jul 2019 17:44:54 +0000 (17:44 +0000)]
[LibTooling] Relax Transformer to allow rewriting macro expansions

Summary:
Currently, Transformer rejects any changes to source locations inside macro
expansions. This change relaxes that constraint to allow rewrites when the
entirety of the expansion is replaced, since that can be mapped to replacing the
entirety of the expansion range in the file source.  This change makes
Transformer consistent with the handling of edit ranges in `clang::edit::Commit`
(which is used, for example, for applying `FixItHint`s from diagnostics).

Reviewers: ilya-biryukov

Subscribers: gribozavr, cfe-commits

Tags: #clang

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

llvm-svn: 366473

5 years agoRevert "Fix asan infinite loop on undefined symbol"
Matthew Voss [Thu, 18 Jul 2019 17:43:44 +0000 (17:43 +0000)]
Revert "Fix asan infinite loop on undefined symbol"

This reverts commit 63719119c78ca965b5d80e5c20fcfe81ba28f896.

The tests in this commit were failing on a Linux sanitizer bot
and our internal CI.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/22401/steps/test%20standalone%20compiler-rt%20with%20symbolizer/logs/stdio

llvm-svn: 366472

5 years ago[swig] Enable autodoc feature
Jonas Devlieghere [Thu, 18 Jul 2019 17:40:30 +0000 (17:40 +0000)]
[swig] Enable autodoc feature

This patch enables the SWIG `autodoc` feature so that the generated
Python reference [1] includes class properties.

[1] https://lldb.llvm.org/python_reference/index.html

llvm-svn: 366471

5 years ago[LAA] Re-check bit-width of pointers after stripping.
Michael Liao [Thu, 18 Jul 2019 17:30:27 +0000 (17:30 +0000)]
[LAA] Re-check bit-width of pointers after stripping.

Summary:
- As the pointer stripping now tracks through `addrspacecast`, prepare
  to handle the bit-width difference from the result pointer.

Reviewers: jdoerfert

Subscribers: jvesely, nhaehnle, hiraditya, arphaman, llvm-commits

Tags: #llvm

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

llvm-svn: 366470

5 years ago[LibTooling] Add function to translate and validate source range for editing
Yitzhak Mandelbaum [Thu, 18 Jul 2019 17:26:57 +0000 (17:26 +0000)]
[LibTooling] Add function to translate and validate source range for editing

Summary:
Adds the function `getRangeForEdit` to validate that a given source range is
editable and, if needed, translate it into a range in the source file (for
example, if it's sourced in macro expansions).

Reviewers: ilya-biryukov

Subscribers: cfe-commits

Tags: #clang

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

llvm-svn: 366469

5 years ago[clangd] Remove dead code from BackgroundIndex
Kadir Cetinkaya [Thu, 18 Jul 2019 17:25:57 +0000 (17:25 +0000)]
[clangd] Remove dead code from BackgroundIndex

llvm-svn: 366468

5 years ago[clangd] BackgroundIndex stores shards to the closest project
Kadir Cetinkaya [Thu, 18 Jul 2019 17:20:41 +0000 (17:20 +0000)]
[clangd] BackgroundIndex stores shards to the closest project

Summary:
Changes persistance logic to store shards at the directory of closest
CDB. Previously we were storing all shards to directory of the CDB that
triggered indexing, it had its downsides.

For example, if you had two TUs coming from a different CDB but depending on the
same header foo.h, we will store the foo.h only for the first CDB, and it would
be missing for the second and we would never persist it since it was actually
present in the memory and persisted before.

This patch still stores only a single copy of a shard, but makes the directory a
function of the file name. So that the shard place will be unique even with
multiple CDBs accessing the file. This directory is determined as the first
directory containing a CDB in the file's parent directories, if no such
directory exists we make use of the home directory.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

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

llvm-svn: 366467

5 years agoELF: Add support for remaining R_AARCH64_MOVW* relocations.
Peter Collingbourne [Thu, 18 Jul 2019 17:12:50 +0000 (17:12 +0000)]
ELF: Add support for remaining R_AARCH64_MOVW* relocations.

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

llvm-svn: 366466

5 years ago[LLDB] Remove lldb-mi
Jonas Devlieghere [Thu, 18 Jul 2019 17:06:06 +0000 (17:06 +0000)]
[LLDB] Remove lldb-mi

As discussed on the mailing list [1], this patch removes the lldb-mi
tool and its tests from the LLDB repository. We moved lldb-mi into a
separate repository on GitHub [2] for downstream users or maintainers to
build and package.

[1] http://lists.llvm.org/pipermail/lldb-dev/2019-July/015103.html
[2] https://github.com/lldb-tools/lldb-mi

Differential revision: https://reviews.llvm.org/D64255

llvm-svn: 366465

5 years ago[NFC][llvm-readobj] Refactor dynamic string table indexing into a function.
Yuanfang Chen [Thu, 18 Jul 2019 17:04:28 +0000 (17:04 +0000)]
[NFC][llvm-readobj] Refactor dynamic string table indexing into a function.

Restore printDynamicString removed in rL363868. It provides better
error handling whenever indexing dynamic string table is needed.

Reviewers: jhenderson, MaskRay, grimar

Reviewed by: jhenderson, MaskRay, grimar

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

llvm-svn: 366464

5 years agoELF: Simplify test. NFCI.
Peter Collingbourne [Thu, 18 Jul 2019 16:57:06 +0000 (16:57 +0000)]
ELF: Simplify test. NFCI.

Avoid splitting the test into multiple files and use zero for the value of
the symbol with addends at relocations so that it's clear what value is
being used at relocations.

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

llvm-svn: 366463

5 years agoMC: AArch64: Add support for prel_g* relocation specifiers.
Peter Collingbourne [Thu, 18 Jul 2019 16:54:33 +0000 (16:54 +0000)]
MC: AArch64: Add support for prel_g* relocation specifiers.

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

llvm-svn: 366462

5 years agoAArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ.
Peter Collingbourne [Thu, 18 Jul 2019 16:51:53 +0000 (16:51 +0000)]
AArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ.

There doesn't seem to be a practical reason for these instructions to have
different restrictions on the types of relocations that they may be used
with, notwithstanding the language in the ELF AArch64 spec that implies that
specific relocations are meant to be used with specific instructions.

For example, we currently forbid the first instruction in the following
sequence, despite it currently being used by clang to generate a global
reference under -mcmodel=large:

movz x0, #:abs_g0_nc:foo
movk x0, #:abs_g1_nc:foo
movk x0, #:abs_g2_nc:foo
movk x0, #:abs_g3:foo

Therefore, allow MOVK/MOVN/MOVZ to accept the union of the set of relocations
that they currently accept individually.

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

llvm-svn: 366461

5 years agoELF: Allow forward references to linked sections.
Peter Collingbourne [Thu, 18 Jul 2019 16:47:29 +0000 (16:47 +0000)]
ELF: Allow forward references to linked sections.

It's possible to create IR that uses !associated to refer to a global that
appears later in the module, which can result in these types of forward
references being generated. Unfortunately our assembler does not currently
accept the resulting .s so I needed to use yaml2obj to test this.

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

llvm-svn: 366460

5 years ago[CMake] Polish folders in generated Xcode project
Stefan Granitz [Thu, 18 Jul 2019 16:44:45 +0000 (16:44 +0000)]
[CMake] Polish folders in generated Xcode project

Summary: Group plugins by subfolder. Move liblldb-resource-headers to `lldb misc`. Avoid install-distribution related targets in IDE-enabled builds.

Reviewers: jingham, mib, stella.stamenova

Subscribers: mgorny, lldb-commits, #lldb

Tags: #lldb

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

llvm-svn: 366459

5 years ago[clangd] Refactor background-index shard loading
Kadir Cetinkaya [Thu, 18 Jul 2019 16:25:36 +0000 (16:25 +0000)]
[clangd] Refactor background-index shard loading

Reviewers: sammccall

Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

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

llvm-svn: 366458

5 years ago[ASTUnit] Attempt to unbreak Windows buildbots after r366448
Ilya Biryukov [Thu, 18 Jul 2019 16:24:09 +0000 (16:24 +0000)]
[ASTUnit] Attempt to unbreak Windows buildbots after r366448

llvm-svn: 366457

5 years agoMinor styling fix. NFC.
Michael Liao [Thu, 18 Jul 2019 16:14:22 +0000 (16:14 +0000)]
Minor styling fix. NFC.

llvm-svn: 366456

5 years ago[clangd] Get rid of dots and dotsdots within GlobalCompilationDatabase
Kadir Cetinkaya [Thu, 18 Jul 2019 16:13:23 +0000 (16:13 +0000)]
[clangd] Get rid of dots and dotsdots within GlobalCompilationDatabase

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

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

llvm-svn: 366455

5 years agoRevert "[RISCV] Hard float ABI support" r366450
Alex Bradbury [Thu, 18 Jul 2019 16:13:17 +0000 (16:13 +0000)]
Revert "[RISCV] Hard float ABI support" r366450

The commit was missing a few hunks. Will fix and recommit.

llvm-svn: 366454

5 years agoRevert r366449: [CrossTU] Add a function to retrieve original source location.
Ilya Biryukov [Thu, 18 Jul 2019 15:43:26 +0000 (15:43 +0000)]
Revert r366449: [CrossTU] Add a function to retrieve original source location.

Reason: the commit breaks layering by adding a dependency on ASTUnit
(which is inside clangFrontend) from the ASTImporter (which is inside
clangAST).

llvm-svn: 366453

5 years ago[Clangd] NFC: Fixed tweaks CMakeLists order to alphabetical
Shaurya Gupta [Thu, 18 Jul 2019 15:42:09 +0000 (15:42 +0000)]
[Clangd] NFC: Fixed tweaks CMakeLists order to alphabetical

llvm-svn: 366452

5 years ago[Clangd] Changed ExtractVariable to only work on non empty selections
Shaurya Gupta [Thu, 18 Jul 2019 15:38:03 +0000 (15:38 +0000)]
[Clangd] Changed ExtractVariable to only work on non empty selections

Summary:
- For now, we don't trigger in any case if it's an empty selection
- Fixed unittests

Reviewers: kadircet, sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

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

llvm-svn: 366451

5 years ago[RISCV] Hard float ABI support
Alex Bradbury [Thu, 18 Jul 2019 15:33:41 +0000 (15:33 +0000)]
[RISCV] Hard float ABI support

The RISC-V hard float calling convention requires the frontend to:

* Detect cases where, once "flattened", a struct can be passed using
int+fp or fp+fp registers under the hard float ABI and coerce to the
appropriate type(s) * Track usage of GPRs and FPRs in order to gate the
above, and to
determine when signext/zeroext attributes must be added to integer
scalars

This patch attempts to do this in compliance with the documented ABI,
and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
author of that code I've tagged you as reviewer for initial feedback on
my usage.

Note that a previous version of the ABI indicated that when passing an
int+fp struct using a GPR+FPR, the int would need to be sign or
zero-extended appropriately. GCC never did this and the ABI was changed,
which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
handle sign/zero-extension attributes.

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

llvm-svn: 366450

5 years ago[CrossTU] Add a function to retrieve original source location.
Balazs Keri [Thu, 18 Jul 2019 15:23:10 +0000 (15:23 +0000)]
[CrossTU] Add a function to retrieve original source location.

Summary:
A new function will be added to get the original SourceLocation
for a SourceLocation that was imported as result of getCrossTUDefinition.
The returned SourceLocation is in the context of the (original)
SourceManager for the original source file. Additionally the
ASTUnit object for that source file is returned. This is needed
to get a SourceManager to operate on with the returned source location.

The new function works if multiple different source files are loaded
with the same CrossTU context.

This patch can be treated as part of a bigger change that is needed to
improve macro expansion handliong at plist generation.

Reviewers: martong, shafik, a_sidorin, xazax.hun

Reviewed By: martong

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

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

llvm-svn: 366449

5 years ago[ASTUnit] Fix a regression in cached completions
Ilya Biryukov [Thu, 18 Jul 2019 15:21:34 +0000 (15:21 +0000)]
[ASTUnit] Fix a regression in cached completions

Summary:
After r345152 cached completions started adding namespaces after
nested name specifiers, e.g. in `some_name::^`

The CCC_Symbol indicates the completed item cannot be a namespace (it is
described as being "a type, a function or a variable" in the comments).

Therefore, 'nested specifier' completions should only be added from cache
when the context is CCC_SymbolOrNewName (which roughly seems to indicate
that a nested name specifier is allowed).

Fixes https://bugs.llvm.org/show_bug.cgi?id=42646

Reviewers: kadircet, sammccall

Reviewed By: kadircet, sammccall

Subscribers: arphaman, nik, sammccall, cfe-commits

Tags: #clang

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

llvm-svn: 366448

5 years ago[CMake] Don't set Python_ADDITIONAL_VERSIONS
Jonas Devlieghere [Thu, 18 Jul 2019 15:17:42 +0000 (15:17 +0000)]
[CMake] Don't set Python_ADDITIONAL_VERSIONS

Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
Python support to 2.7. Now that both LLVM and LLDB both support Python
3, there's no longer a need to put an arbitrary limit on this.

However, instead of removing the variable, r365692 expanded the list,
which has the (presumably unintentional) side-effect of expression
preference for Python 3.

Instead, as Michal proposed in the original code review, we should just
not set the list at all, and let CMake pick whatever Python interpreter
you have in your path.

This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
clang and lld. I've also updated the docs with the default behavior and
how to force a different Python version to be used.

Differential revision: https://reviews.llvm.org/D64894

llvm-svn: 366447

5 years ago[clangd] Suppress unwritten scopes when expanding auto.
Haojian Wu [Thu, 18 Jul 2019 15:13:45 +0000 (15:13 +0000)]
[clangd] Suppress unwritten scopes when expanding auto.

Summary: otherwise the replacement will break the code.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

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

llvm-svn: 366446

5 years ago[ELF][PPC] Delete ppc64-dynamic-relocations.s
Fangrui Song [Thu, 18 Jul 2019 15:07:42 +0000 (15:07 +0000)]
[ELF][PPC] Delete ppc64-dynamic-relocations.s

I forgot to delete it in r366424.

llvm-svn: 366445

5 years agoRevert "[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame."
Hsiangkai Wang [Thu, 18 Jul 2019 15:06:50 +0000 (15:06 +0000)]
Revert "[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame."

This reverts commit 17e3cbf5fe656483d9016d0ba9e1d0cd8629379e.

llvm-svn: 366444

5 years ago[clangd] Disable DumpRecordLayout by default per https://bugs.llvm.org/show_bug.cgi...
Sam McCall [Thu, 18 Jul 2019 15:00:38 +0000 (15:00 +0000)]
[clangd] Disable DumpRecordLayout by default per https://bugs.llvm.org/show_bug.cgi?id=42670

llvm-svn: 366443

5 years ago[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.
Hsiangkai Wang [Thu, 18 Jul 2019 14:47:34 +0000 (14:47 +0000)]
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.

It is necessary to generate fixups in .debug_frame or .eh_frame as
relaxation is enabled due to the address delta may be changed after
relaxation.

There is an opcode with 6-bits data in debug frame encoding. So, we
also need 6-bits fixup types.

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

llvm-svn: 366442

5 years ago[X86] EltsFromConsecutiveLoads - support common source loads
Simon Pilgrim [Thu, 18 Jul 2019 14:33:25 +0000 (14:33 +0000)]
[X86] EltsFromConsecutiveLoads - support common source loads

This patch enables us to find the source loads for each element, splitting them into a Load and ByteOffset, and attempts to recognise consecutive loads that are in fact from the same source load.

A helper function, findEltLoadSrc, recurses to find a LoadSDNode and determines the element's byte offset within it. When attempting to match consecutive loads, byte offsetted loads then attempt to matched against a previous load that has already been confirmed to be a consecutive match.

Next step towards PR16739 - after this we just need to account for shuffling/repeated elements to create a vector load + shuffle.

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

llvm-svn: 366441

5 years ago[lldb][NFC] Tablegenify alias/regex/history/source/script
Raphael Isemann [Thu, 18 Jul 2019 14:10:49 +0000 (14:10 +0000)]
[lldb][NFC] Tablegenify alias/regex/history/source/script

(Converting these commands together as they are all simple commands
that share the same file).

llvm-svn: 366440

5 years ago[analyzer] Add CTU user docs
Gabor Marton [Thu, 18 Jul 2019 14:03:25 +0000 (14:03 +0000)]
[analyzer] Add CTU user docs

Reviewers: dkrupp, a_sidorin, Szelethus, NoQ

Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, gamesh411, Charusso, cfe-commits

Tags: #clang

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

llvm-svn: 366439

5 years ago[OpenMP][libomptarget] Suppress C++ 11 related warnings when building libomptarget...
Alexey Bataev [Thu, 18 Jul 2019 13:54:01 +0000 (13:54 +0000)]
[OpenMP][libomptarget] Suppress C++ 11 related warnings when building libomptarget-nvptx bitcode library, by Doru Bercea.

Summary: Pass -std=c++11 flag to compiler to suppress C++ 11 related warnings when building NVPTX bitcode library.

Reviewers: ABataev, caomhin, Hahnfeld

Reviewed By: ABataev, Hahnfeld

Subscribers: jdoerfert, Hahnfeld, jholewinski, mgorny, guansong, openmp-commits

Tags: #openmp

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

llvm-svn: 366438

5 years ago[OPENMP][NVPTX]Mark barrier functions calls as convergent.
Alexey Bataev [Thu, 18 Jul 2019 13:49:24 +0000 (13:49 +0000)]
[OPENMP][NVPTX]Mark barrier functions calls as convergent.

Added convergent attribute to the barrier functions calls for correct
optimizations.

llvm-svn: 366437

5 years agoRestrict asan + dlopen testcase to x86
Serge Guelton [Thu, 18 Jul 2019 13:47:28 +0000 (13:47 +0000)]
Restrict asan + dlopen testcase to x86

llvm-svn: 366436

5 years ago[DAGCombine] Pull getSubVectorSrc helper out of narrowInsertExtractVectorBinOp. NFCI.
Simon Pilgrim [Thu, 18 Jul 2019 13:45:53 +0000 (13:45 +0000)]
[DAGCombine] Pull getSubVectorSrc helper out of narrowInsertExtractVectorBinOp. NFCI.

NFC step towards reusing this in other EXTRACT_SUBVECTOR combines.

llvm-svn: 366435

5 years ago[FileCheck] Fix numeric variable redefinition
Thomas Preud'homme [Thu, 18 Jul 2019 13:39:04 +0000 (13:39 +0000)]
[FileCheck] Fix numeric variable redefinition

Summary:
Commit r365249 changed usage of FileCheckNumericVariable to have one
instance of that class per variable as opposed to one instance per
definition of a given variable as was done before. However, it retained
the safety check in setValue that it should only be called with the
variable unset, even after r365625.

However this causes assert failure when a non-pseudo variable is being
redefined. And while redefinition of @LINE at each CHECK line work in
the general case, it caused problem when a substitution failed (fixed in
r365624) and still causes problem when a CHECK line does not match since
@LINE's value is cleared after substitutions in match() happened but
printSubstitutions also attempts a substitution.

This commit solves the root of the problem by changing setValue to set a
new value regardless of whether a value was set or not, thus fixing all
the aforementioned issues.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

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

llvm-svn: 366434

5 years ago[CMake] Always build debugserver on Darwin and allow tests to use the system's one
Stefan Granitz [Thu, 18 Jul 2019 13:30:37 +0000 (13:30 +0000)]
[CMake] Always build debugserver on Darwin and allow tests to use the system's one

Summary:
We can always build debugserver, but we can't always sign it to be useable for testing. `LLDB_USE_SYSTEM_DEBUGSERVER` should only tell whether or not the system debugserver should be used for testing.
The old behavior complicated the logic around debugserver a lot. The new logic sorts out most of it.

Please note that this patch is in early stage and needs some more testing. It should not affect platfroms other than Darwin. It builds on Davide's approach to validate the code-signing identity at configuration time.

What do you think?

Reviewers: xiaobai, JDevlieghere, davide, compnerd, friss, labath, mgorny, jasonmolenda

Reviewed By: JDevlieghere

Subscribers: lldb-commits, #lldb

Tags: #lldb

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

llvm-svn: 366433

5 years agoRelax regexp to detect failed interception by asan
Serge Guelton [Thu, 18 Jul 2019 13:13:29 +0000 (13:13 +0000)]
Relax regexp to detect failed interception by asan

This should fix failed detection on aarch64/ppc64/thumbv8...

llvm-svn: 366432

5 years ago[x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483)
Sanjay Patel [Thu, 18 Jul 2019 12:48:01 +0000 (12:48 +0000)]
[x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483)

LEA doesn't affect flags, so use it more liberally to replace an ADD when
we know that the ADD operands affect flags.

In the motivating example from PR40483:
https://bugs.llvm.org/show_bug.cgi?id=40483
...this lets us avoid duplicating a math op just to avoid flag conflict.

As mentioned in the TODO comments, this heuristic can be extended to
fire more often if that leads to more improvements.

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

llvm-svn: 366431

5 years ago[llvm-readelf] - Remove the precompiled binary from gnu-hash-symbols.test
George Rimar [Thu, 18 Jul 2019 12:14:36 +0000 (12:14 +0000)]
[llvm-readelf] - Remove the precompiled binary from gnu-hash-symbols.test

I am working on https://bugs.llvm.org/show_bug.cgi?id=42622
and this patch reworks the gnu-hash-symbols.test so that it
will be easier to expand it with x86_64 case.

Differential revision: https://reviews.llvm.org/D64750

llvm-svn: 366430

5 years agoRevert r366422: [OpenCL] Improve destructor support in C++ for OpenCL
Ilya Biryukov [Thu, 18 Jul 2019 11:55:33 +0000 (11:55 +0000)]
Revert r366422: [OpenCL] Improve destructor support in C++ for OpenCL

Reason: this commit causes crashes in the clang compiler when building
LLVM Support with libc++, see https://bugs.llvm.org/show_bug.cgi?id=42665
for details.

llvm-svn: 366429

5 years agoBump the trunk version to 10.0.0svn llvmorg-10-init
Hans Wennborg [Thu, 18 Jul 2019 11:51:05 +0000 (11:51 +0000)]
Bump the trunk version to 10.0.0svn

and clear the release notes.

llvm-svn: 366427

5 years ago[lldb][NFC] Format 'type' commands in Options.td
Raphael Isemann [Thu, 18 Jul 2019 11:43:45 +0000 (11:43 +0000)]
[lldb][NFC] Format 'type' commands in Options.td

llvm-svn: 366426

5 years ago[lldb] Tablegenify thread commands and fix completion bug for thread step-*
Raphael Isemann [Thu, 18 Jul 2019 11:12:00 +0000 (11:12 +0000)]
[lldb] Tablegenify thread commands and fix completion bug for thread step-*

Beside turning the options into the new tablegen format, this patch
also fixes that a few commands had source file completions for the
"count" and "end-linenumber" arguments (which both accepted only
integers). Reason for that are that somehow we added a '1' instead
of our usual '0' value to the initial value for completion.

llvm-svn: 366425

5 years ago[ELF][PPC] Refactor some ppc64 tests
Fangrui Song [Thu, 18 Jul 2019 10:43:07 +0000 (10:43 +0000)]
[ELF][PPC] Refactor some ppc64 tests

Merge ppc64-dynamic-relocations.s into ppc64-plt-stub.s
Add ppc64-tls-ie.s: covers ppc64-initial-exec-tls.s and ppc64-tls-ie-le.s
Add ppc64-tls-gd.s: covers ppc64-general-dynamic-tls.s, ppc64-gd-to-ie.s, ppc64-tls-gd-le.s, and ppc64-tls-gd-le-small.s

llvm-svn: 366424

5 years ago[ARM][DAGCOMBINE][FIX] PerformVMOVRRDCombine
Diogo N. Sampaio [Thu, 18 Jul 2019 10:05:56 +0000 (10:05 +0000)]
[ARM][DAGCOMBINE][FIX] PerformVMOVRRDCombine

Summary:
PerformVMOVRRDCombine ommits adding a offset
of 4 to the PointerInfo, when converting a
f64 = load[M]
to
{i32, i32} = {load[M], load[M + 4]}

Which would allow the machine scheduller
to break dependencies with the second load.

 - pr42638

Reviewers: eli.friedman, dmgreen, ostannard

Reviewed By: ostannard

Subscribers: ostannard, javed.absar, kristof.beyls, llvm-commits

Tags: #llvm

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

llvm-svn: 366423

5 years ago[OpenCL] Improve destructor support in C++ for OpenCL
Marco Antognini [Thu, 18 Jul 2019 10:04:18 +0000 (10:04 +0000)]
[OpenCL] Improve destructor support in C++ for OpenCL

Summary:
This patch does mainly three things:
 1. It fixes a false positive error detection in Sema that is similar to
    D62156. The error happens when explicitly calling an overloaded
    destructor for different address spaces.
 2. It selects the correct destructor when multiple overloads for
    address spaces are available.
 3. It inserts the expected address space cast when invoking a
    destructor, if needed, and therefore fixes a crash due to the unmet
    assertion in llvm::CastInst::Create.

The following is a reproducer of the three issues:

    struct MyType {
      ~MyType() {}
      ~MyType() __constant {}
    };

    __constant MyType myGlobal{};

    kernel void foo() {
      myGlobal.~MyType(); // 1 and 2.
      // 1. error: cannot initialize object parameter of type
      //    '__generic MyType' with an expression of type '__constant MyType'
      // 2. error: no matching member function for call to '~MyType'
    }

    kernel void bar() {
      // 3. The implicit call to the destructor crashes due to:
      //    Assertion `castIsValid(op, S, Ty) && "Invalid cast!"' failed.
      //    in llvm::CastInst::Create.
      MyType myLocal;
    }

The added test depends on D62413 and covers a few more things than the
above reproducer.

Subscribers: yaxunl, Anastasia, cfe-commits

Tags: #clang

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

llvm-svn: 366422