Mikael Nilsson [Wed, 12 Dec 2018 15:06:16 +0000 (15:06 +0000)]
Revert "[OpenCL] Add generic AS to 'this' pointer"
Reverting because the patch broke lldb.
llvm-svn: 348931
Alexey Bataev [Wed, 12 Dec 2018 14:52:27 +0000 (14:52 +0000)]
[CUDA][OPENMP][NVPTX]Improve logic of the debug info support.
Summary:
Added support for the -gline-directives-only option + fixed logic of the
debug info for CUDA devices. If optimization level is O0, then options
--[no-]cuda-noopt-device-debug do not affect the debug info level. If
the optimization level is >O0, debug info options are used +
--no-cuda-noopt-device-debug is used or no --cuda-noopt-device-debug is
used, the optimization level for the device code is kept and the
emission of the debug directives is used.
If the opt level is > O0, debug info is requested +
--cuda-noopt-device-debug option is used, the optimization is disabled
for the device code + required debug info is emitted.
Reviewers: tra, echristo
Subscribers: aprantl, guansong, JDevlieghere, cfe-commits
Differential Revision: https://reviews.llvm.org/D51554
llvm-svn: 348930
Alex Bradbury [Wed, 12 Dec 2018 14:33:24 +0000 (14:33 +0000)]
[clang-fuzzer] Add explicit dependency on clangSerialization for clangHandleCXX after rC348907
This library was breaking my -DBUILD_SHARED_LIBS=1 build. rC348915 seemed to miss this case.
As this seems an "obvious" fix, I am committing without pre-commit review as
per the LLVM developer policy.
llvm-svn: 348929
Pavel Labath [Wed, 12 Dec 2018 14:20:28 +0000 (14:20 +0000)]
ELF: Simplify program header iteration
Instead of GetProgramHeaderCount+GetProgramHeaderByIndex, expose an
ArrayRef of all program headers, to enable range-based iteration.
Instead of GetSegmentDataByIndex, expose GetSegmentData, taking a
program header (reference).
This makes the code simpler by enabling range-based loops and also
allowed to remove some null checks, as it became locally obvious that
some pointers can never be null.
llvm-svn: 348928
Mikael Nilsson [Wed, 12 Dec 2018 14:11:59 +0000 (14:11 +0000)]
[OpenCL] Add generic AS to 'this' pointer
Address spaces are cast into generic before invoking the constructor.
Added support for a trailing Qualifiers object in FunctionProtoType.
Differential Revision: https://reviews.llvm.org/D54862
llvm-svn: 348927
Simon Pilgrim [Wed, 12 Dec 2018 13:43:07 +0000 (13:43 +0000)]
[TargetLowering] Add ISD::AND handling to SimplifyDemandedVectorElts
If either of the operand elements are zero then we know the result element is going to be zero (even if the other element is undef).
Differential Revision: https://reviews.llvm.org/D55558
llvm-svn: 348926
Simon Pilgrim [Wed, 12 Dec 2018 13:21:03 +0000 (13:21 +0000)]
Regenerate knownbits test. NFCI.
A future SimplifyDemandedBits patch will affect this code and I want to ensure the codegen diff is obvious.
llvm-svn: 348925
Pavel Labath [Wed, 12 Dec 2018 12:35:25 +0000 (12:35 +0000)]
lldb-test: Add ability to dump subsections
Previously, lldb-test would only print top-level sections. However, in
lldb, sections can contain other sections. This teaches lldb-test to
print nested sections too.
llvm-svn: 348924
Gabor Marton [Wed, 12 Dec 2018 11:22:55 +0000 (11:22 +0000)]
[ASTImporter] Remove import of definition from GetAlreadyImportedOrNull
Summary: a_sidorin
Reviewers: a.sidorin
Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits
Differential Revision: https://reviews.llvm.org/D53755
llvm-svn: 348923
Piotr Sobczak [Wed, 12 Dec 2018 11:20:04 +0000 (11:20 +0000)]
[AMDGPU] Set metadata access for explicit section
Summary:
This patch provides a means to set Metadata section kind
for a global variable, if its explicit section name is
prefixed with ".AMDGPU.metadata."
This could be useful to make the global variable go to
an ELF section without any section flags set.
Reviewers: dstuttard, tpr, kzhuravl, nhaehnle, t-tye
Reviewed By: dstuttard, kzhuravl
Subscribers: llvm-commits, arsenm, jvesely, wdng, yaxunl, t-tye
Differential Revision: https://reviews.llvm.org/D55267
llvm-svn: 348922
James Henderson [Wed, 12 Dec 2018 10:34:01 +0000 (10:34 +0000)]
[lit]Add llvm-readelf to tool substitutions
Reviewed by: rnk, alexsahp
Differential Revision: https://reviews.llvm.org/D55564
llvm-svn: 348921
Diana Picus [Wed, 12 Dec 2018 10:32:15 +0000 (10:32 +0000)]
[ARM GlobalISel] Select load/store for Thumb2
Unfortunately we can't use TableGen for this because it doesn't yet
support predicates on the source pattern root. Therefore, add a bit of
handwritten code to the instruction selector to handle the most basic
cases.
Also mark them as legal and extract their legalizer test cases to a new
test file.
llvm-svn: 348920
Andrew Savonichev [Wed, 12 Dec 2018 09:51:23 +0000 (09:51 +0000)]
[OpenCL] Fix for TBAA information of pointer after addresspacecast
Summary: When addresspacecast is generated resulting pointer should preserve TBAA information from original value.
Reviewers: rjmccall, yaxunl, Anastasia
Reviewed By: rjmccall
Subscribers: asavonic, kosarev, cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D55262
llvm-svn: 348919
Pavel Labath [Wed, 12 Dec 2018 08:54:14 +0000 (08:54 +0000)]
build.py: Implement "gcc" builder
Summary:
This implements the gcc builder in build.py script to allow it to
compile host executables when running on a non-windows host. Where it
made sense, I tried to share code with the msvc builder by moving stuff
to the base class.
Reviewers: zturner
Subscribers: mehdi_amini, dexonsmith, lldb-commits
Differential Revision: https://reviews.llvm.org/D55430
llvm-svn: 348918
Jonas Paulsson [Wed, 12 Dec 2018 08:26:24 +0000 (08:26 +0000)]
[SystemZ] Minor cleanup of SchedModels
Some fixes of a few InstRWs for z13 and z14.
Review: Ulrich Weigand
llvm-svn: 348917
Fangrui Song [Wed, 12 Dec 2018 08:25:16 +0000 (08:25 +0000)]
Add explicit dependency on clangSerialization after rC348911
llvm-svn: 348916
Fangrui Song [Wed, 12 Dec 2018 08:02:18 +0000 (08:02 +0000)]
Add explicit dependency on clangSerialization for a bunch of components to fix -DBUILD_SHARED_LIBS=on build
This is a more thorough fix of rC348911.
The story about -DBUILD_SHARED_LIBS=on build after rC348907 (Move PCHContainerOperations from Frontend to Serialization) is:
1. libclangSerialization.so defines PCHContainerReader dtor, ...
2. clangFrontend and clangTooling define classes inheriting from PCHContainerReader, thus their DSOs have undefined references on PCHContainerReader dtor
3. Components depending on either clangFrontend or clangTooling cannot be linked unless they have explicit dependency on clangSerialization due to the default linker option -z defs. The explicit dependency could be avoided if libclang{Frontend,Tooling}.so had these undefined references.
This patch adds the explicit dependency on clangSerialization to make them build.
llvm-svn: 348915
Simon Atanasyan [Wed, 12 Dec 2018 07:03:04 +0000 (07:03 +0000)]
[mips] Use llvm-mc -triple option instead of combination of arch,target-abi,mcpu. NFC
llvm-svn: 348914
Mikael Holmen [Wed, 12 Dec 2018 06:33:45 +0000 (06:33 +0000)]
Fix compiler warning about unused variable [NFC]
llvm-svn: 348913
Leonard Chan [Wed, 12 Dec 2018 06:29:14 +0000 (06:29 +0000)]
[Intrinsic] Signed Fixed Point Multiplication Intrinsic
Add an intrinsic that takes 2 signed integers with the scale of them provided
as the third argument and performs fixed point multiplication on them.
This is a part of implementing fixed point arithmetic in clang where some of
the more complex operations will be implemented as intrinsics.
Differential Revision: https://reviews.llvm.org/D54719
llvm-svn: 348912
Fangrui Song [Wed, 12 Dec 2018 06:07:33 +0000 (06:07 +0000)]
[CodeGen] Fix -DBUILD_SHARED_LIBS=on build after rC348907
llvm-svn: 348911
Craig Topper [Wed, 12 Dec 2018 05:56:01 +0000 (05:56 +0000)]
[X86] Combine vpmovdw+vpacksswb into vpmovdb.
This is similar to the combine we already have for vpmovdw+vpackuswb.
llvm-svn: 348910
Craig Topper [Wed, 12 Dec 2018 05:55:59 +0000 (05:55 +0000)]
[X86] Add a few more fptosi test cases to demonstrate -x86-experimental-vector-widening legalization not combining vpacksswb+vpmovdw.
We are able to combine vpackuswb+vpmovdw, but we didn't have packsswb+vpmovdw at the time that combine was added.
llvm-svn: 348909
Nico Weber [Wed, 12 Dec 2018 03:05:59 +0000 (03:05 +0000)]
[gn build] Add build files for DebugInfo/{DWARF,PDB}, Option, ToolDrivers/llvm-lib, and WindowsManifest
The diff in targets.gni is due to me running `gn format` on all .gn and .gni
files.
llvm_enable_dia_sdk is in a gni file because I'm going to have to read it when
writing the lit invocations for check-llvm and check-lld. I've never had the
DIA sdk installed locally so I never tested building with it enabled -- it
probably doesn't Just Work and needs some path to diaguids.lib. We can finish
that once somebody needs it.
Differential Revision: https://reviews.llvm.org/D55591
llvm-svn: 348908
Richard Trieu [Wed, 12 Dec 2018 02:53:59 +0000 (02:53 +0000)]
Move PCHContainerOperations from Frontend to Serialization
Fix a layering violation. Frontend depends on Serialization, so anything used
by both should be in Serialization.
llvm-svn: 348907
Florian Hahn [Wed, 12 Dec 2018 02:22:12 +0000 (02:22 +0000)]
[ConstantInt] Check active bits before calling getZExtValue.
Without this check, we hit an assertion in getZExtValue, if the constant
value does not fit into an uint64_t.
As getZExtValue returns an uint64_t, should we update
getAggregateElement to take an uin64_t as well?
This fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6109.
Reviewers: efriedma, craig.topper, spatel
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D55547
llvm-svn: 348906
Nico Weber [Wed, 12 Dec 2018 00:04:38 +0000 (00:04 +0000)]
[gn build] Add build files for lib/LTO, lib/Linker, lib/Passes, lib/Transforms/{IPO,Instrumentation,ObjCARC}
Differential Revision: https://reviews.llvm.org/D55553
llvm-svn: 348905
Nathan Lanza [Wed, 12 Dec 2018 00:04:06 +0000 (00:04 +0000)]
Implement IMAGE_REL_AMD64_SECREL for RuntimeDyldCOFFX86_64
lldb on Windows uses the ExecutionEngine for expression evaluation
and hits the llvm_unreachable due to this relocation. Thus, implement
the relocation and add a test to verify it's function.
llvm-svn: 348904
Nico Weber [Wed, 12 Dec 2018 00:03:23 +0000 (00:03 +0000)]
[gn build] Add build files for Target/X86/... and for tools/llc
The tablegen setup for Target/X86 is a bit different from the CMake build: In
the CMake build, Target/X86/CMakeLists.txt has a single tablegen target that
does everything. But some of the generated files are only used privately by a
subproject, so in the GN build some of the tablegen invocations are
smaller-scoped, mostly for build cleanliness. (It helps also a tiny bit with
build parallelism since now e.g. the cpp files in MCTargetDesc can build after
just 3 .inc files are generated instead of being blocked on all 13. But it's
not a big win, since things depending on Target still need to wait for all 11,
even though all .inc file use is internal to lib/Target.)
Also add a build file for llc, since now all its dependencies have build files.
Differential Revision: https://reviews.llvm.org/D55524
llvm-svn: 348903
Reid Kleckner [Tue, 11 Dec 2018 23:07:39 +0000 (23:07 +0000)]
[codeview] Look through typedefs in getCompleteTypeIndex
Summary:
Any time a symbol record, whether it's S_UDT, S_LOCAL, or S_[GL]DATA32,
references a record type, it should use the complete type index, even if
there's a typedef in the way.
Fixes the compiler part of PR39853.
Reviewers: zturner, aganea
Subscribers: hiraditya, arphaman, llvm-commits
Differential Revision: https://reviews.llvm.org/D55236
llvm-svn: 348902
Jonas Devlieghere [Tue, 11 Dec 2018 22:46:56 +0000 (22:46 +0000)]
Remove unused file
I removed the dotest-style reproducer test but forgot to delete the
source file. Thanks Jim for the heads up!
llvm-svn: 348901
Craig Topper [Tue, 11 Dec 2018 22:07:06 +0000 (22:07 +0000)]
[GISel] Add parentheses to an assert because gcc is mean.
llvm-svn: 348900
Erich Keane [Tue, 11 Dec 2018 21:54:52 +0000 (21:54 +0000)]
Replace Const-Member checking with non-recursive version.
As reported in PR39946, these two implementations cause stack overflows
to occur when a type recursively contains itself. While this only
happens when an incomplete version of itself is used by membership (and
thus an otherwise invalid program), the crashes might be surprising.
The solution here is to replace the recursive implementation with one
that uses a std::vector as a queue. Old values are kept around to
prevent re-checking already checked types.
Change-Id: I582bb27147104763d7daefcfee39d91f408b9fa8
llvm-svn: 348899
Jordan Rupprecht [Tue, 11 Dec 2018 21:26:52 +0000 (21:26 +0000)]
Revert "debuginfo: Use symbol difference for CU length to simplify assembly reading/editing"
Temporarily reverts commit r348806 due to strange asm compilation issues in certain modes (combination of asan+cuda+other things). Will provide repro soon.
llvm-svn: 348898
Gor Nishanov [Tue, 11 Dec 2018 21:23:09 +0000 (21:23 +0000)]
[coroutines] Improve suspend point simplification
Summary:
Enable suspend point simplification for cases where:
* coro.save and coro.suspend are in different basic blocks
* where there are intervening intrinsics
Reviewers: modocache, tks2103, lewissbaker
Reviewed By: modocache
Subscribers: EricWF, llvm-commits
Differential Revision: https://reviews.llvm.org/D55160
llvm-svn: 348897
Wolfgang Pieb [Tue, 11 Dec 2018 21:13:53 +0000 (21:13 +0000)]
[Debuginfo] Prevent CodeGenPrepare from dropping debuginfo references.
This fixes PR39845. CodeGenPrepare employs a transactional model when
performing optimizations, i.e. it changes the IR to attempt an optimization
and rolls back the change when it finds the change inadequate. It is during
the rollback that references to locals were dropped from debug value
intrinsics. This patch reinstates debuginfo references during rollbacks.
Reviewers: aprantl, vsk
Differential Revision: https://reviews.llvm.org/D55396
llvm-svn: 348896
Nikita Popov [Tue, 11 Dec 2018 20:29:16 +0000 (20:29 +0000)]
[ConstantFolding] Handle leading zero-size elements in load folding
Struct types may have leading zero-size elements like [0 x i32], in
which case the "real" element at offset 0 will not necessarily coincide
with the 0th element of the aggregate. ConstantFoldLoadThroughBitcast()
wants to drill down the element at offset 0, but currently always picks
the 0th aggregate element to do so. This patch changes the code to find
the first non-zero-size element instead, for the struct case.
The motivation behind this change is https://github.com/rust-lang/rust/issues/48627.
Rust is fond of emitting [0 x iN] separators between struct elements to
enforce alignment, which prevents constant folding in this particular case.
The additional tests with [
4294967295 x [0 x i32]] check that we don't
end up unnecessarily looping over a large number of zero-size elements
of a zero-size array.
Differential Revision: https://reviews.llvm.org/D55169
llvm-svn: 348895
Jonas Devlieghere [Tue, 11 Dec 2018 20:19:53 +0000 (20:19 +0000)]
[Driver] Simplify OptionData. NFC
Hopefully this makes the option data easier to understand and maintain.
- Group the member variables.
- Do the initialization in the header as it's less error prone.
- Rename the Clean method. It was called only once and was
re-initializing some but not all (?) members. The only useful thing it
does is dealing with the local lldbinit file so keep that and make the
name reflect that.
llvm-svn: 348894
Aditya Nandakumar [Tue, 11 Dec 2018 20:04:40 +0000 (20:04 +0000)]
[GISel]: Add MachineIRBuilder support for passing in Flags while building
https://reviews.llvm.org/D55516
Add the ability to pass in flags to buildInstr calls. Currently no
validation is performed but that can be easily performed based on the
opcode (if necessary).
Reviewed by: paquette.
llvm-svn: 348893
Aaron Ballman [Tue, 11 Dec 2018 19:42:04 +0000 (19:42 +0000)]
Revert r348889; it fails some tests.
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/40784
llvm-svn: 348892
Aaron Ballman [Tue, 11 Dec 2018 19:30:49 +0000 (19:30 +0000)]
Stop stripping comments from AST matcher example code.
The AST matcher documentation dumping script was being a bit over-zealous about stripping comment markers, which ended up causing comments in example code to stop being comments. Fix that by only stripping comments at the start of a line, rather than removing any forward slash (which also impacts prose text).
llvm-svn: 348891
Jim Ingham [Tue, 11 Dec 2018 19:25:03 +0000 (19:25 +0000)]
Add ObjectFileBreakpad.{cpp,h} to the Xcode project.
llvm-svn: 348890
Aaron Ballman [Tue, 11 Dec 2018 19:18:01 +0000 (19:18 +0000)]
Emit -Wformat properly for bit-field promotions.
Only explicitly look through integer and floating-point promotion where the result type is actually a promotion, which is not always the case for bit-fields in C.
llvm-svn: 348889
David Carlier [Tue, 11 Dec 2018 19:08:40 +0000 (19:08 +0000)]
[Sanitizer] Expand FSEEK interception to FreeBSD
Reviewers: krytarowski
Reviewed By: krytarowski
Differential Revision: https://reviews.llvm.org/D55556
llvm-svn: 348888
Fedor Sergeev [Tue, 11 Dec 2018 19:05:35 +0000 (19:05 +0000)]
[NewPM] fixing asserts on deleted loop in -print-after-all
IR-printing AfterPass instrumentation might be called on a loop
that has just been invalidated. We should skip printing it to
avoid spurious asserts.
Reviewed By: chandlerc, philip.pfaffe
Differential Revision: https://reviews.llvm.org/D54740
llvm-svn: 348887
Michal Gorny [Tue, 11 Dec 2018 19:02:14 +0000 (19:02 +0000)]
[runtime] Disable KMP_HAVE_QUAD on NetBSD gcc
Disable KMP_HAVE_QUAD when building via gcc on NetBSD system,
as the build fails due to unimplemented builtins:
.../kmp_atomic.cpp.o: In function `__kmpc_atomic_cmplx16_mul':
.../kmp_atomic.cpp:1332: undefined reference to `__multc3'
.../kmp_atomic.cpp.o: In function `__kmpc_atomic_cmplx16_div':
.../kmp_atomic.cpp:1334: undefined reference to `__divtc3'
...
Differential Revision: https://reviews.llvm.org/D55478
llvm-svn: 348886
Michal Gorny [Tue, 11 Dec 2018 19:02:09 +0000 (19:02 +0000)]
[runtime] Use getloadavg() on NetBSD as well
Switch NetBSD from reading /proc (which is broken) to getloadavg()
(which is already used by Darwin). NetBSD discourages using procfs
in favor of system API calls.
Differential Revision: https://reviews.llvm.org/D55486
llvm-svn: 348885
David Carlier [Tue, 11 Dec 2018 18:57:07 +0000 (18:57 +0000)]
[analyzer][CStringChecker] evaluate explicit_bzero
- explicit_bzero has limited scope/usage only for security/crypto purposes but is non-optimisable version of memset/0 and bzero.
- explicit_memset has similar signature and semantics as memset but is also a non-optimisable version.
Reviewers: NoQ
Reviewed By: NoQ
Differential Revision: https://reviews.llvm.org/D54592
llvm-svn: 348884
Mandeep Singh Grang [Tue, 11 Dec 2018 18:36:14 +0000 (18:36 +0000)]
[COFF, ARM64] Emit COFF function header
Summary:
Emit COFF header when printing out the function. This is important as the
header contains two important pieces of information: the storage class for the
symbol and the symbol type information. This bit of information is required for
the linker to correctly identify the type of symbol that it is dealing with.
This patch mimics X86 and ARM COFF behavior for function header emission.
Reviewers: rnk, mstorsjo, compnerd, TomTan, ssijaric
Reviewed By: mstorsjo
Subscribers: dmajor, javed.absar, kristof.beyls, llvm-commits
Differential Revision: https://reviews.llvm.org/D55535
llvm-svn: 348875
Kamil Rytarowski [Tue, 11 Dec 2018 18:35:07 +0000 (18:35 +0000)]
Implement __kmp_is_address_mapped() for NetBSD
Summary:
Use the sysctl(3) function to check whether an address is mapped
into the address space.
Reviewers: mgorny, joerg, #openmp
Reviewed By: mgorny
Subscribers: openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D55549
llvm-svn: 348874
Kamil Rytarowski [Tue, 11 Dec 2018 18:34:33 +0000 (18:34 +0000)]
Implement __kmp_gettid() for NetBSD
Summary: _lwp_self() returns current Thread Id in a numeric version on NetBSD.
Reviewers: joerg, mgorny, #openmp
Reviewed By: mgorny
Subscribers: llvm-commits, openmp-commits, #openmp
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D55497
llvm-svn: 348873
Michal Gorny [Tue, 11 Dec 2018 18:29:35 +0000 (18:29 +0000)]
[test] Permit NetBSD in filesystem_dynamic_test_helper.py
llvm-svn: 348872
Louis Dionne [Tue, 11 Dec 2018 18:05:38 +0000 (18:05 +0000)]
[libcxx] Only enable the availability LIT feature when we're testing libc++
Other standard libraries don't implement availability markup, so it doesn't
make sense to e.g. XFAIL tests based on availability markup outside of
libc++.
llvm-svn: 348871
Vedant Kumar [Tue, 11 Dec 2018 18:05:31 +0000 (18:05 +0000)]
[HotColdSplitting] Disable outlining landingpad instructions (PR39917)
It's currently not safe to outline landingpad instructions (see
llvm.org/PR39917). Like @llvm.eh.typeid.for, the order and content of
previous landingpad instructions in a function alters the lowering of
subsequent landingpads by renumbering type info ID's. Outlining a
landingpad therefore breaks exception handling & unwinding.
llvm-svn: 348870
Fangrui Song [Tue, 11 Dec 2018 17:34:15 +0000 (17:34 +0000)]
[XRay] Add a helper function sortByKey to simplify code
Reviewers: dberris, mboerger
Reviewed By: dberris
Subscribers: mgrang, llvm-commits
Differential Revision: https://reviews.llvm.org/D55548
llvm-svn: 348869
Louis Dionne [Tue, 11 Dec 2018 17:29:55 +0000 (17:29 +0000)]
[libcxx] Remove the no_default_flags LIT configuration
This is part of an ongoing cleanup of the LIT test suite, where I'm
trying to reduce the number of configuration options. In this case,
the original intent seemed to be running the test suite with libstdc++,
but this is now supported by specifying cxx_stdlib_under_test=libstdc++.
llvm-svn: 348868
Louis Dionne [Tue, 11 Dec 2018 17:05:20 +0000 (17:05 +0000)]
[NFC] Fix incorrect (but unreachable) LIT error message
It is unreachable because we test that the cxx_stdlib_under_test is
in the supported set of libraries elsewhere. Furthermore, this code
relied on the `use_stdlib_type`, which is never defined.
llvm-svn: 348867
Adrian Prantl [Tue, 11 Dec 2018 16:58:46 +0000 (16:58 +0000)]
Remove CGDebugInfo::getOrCreateFile() and use TheCU->getFile() directly.
llvm-svn: 348866
Adrian Prantl [Tue, 11 Dec 2018 16:58:43 +0000 (16:58 +0000)]
Reuse code from CGDebugInfo::getOrCreateFile() when creating the file
for the DICompileUnit.
This addresses post-commit feedback for D55085. Without this patch, a
main source file with an absolute paths may appear in different
DIFiles, once with the absolute path and once with the common prefix
between the absolute path and the current working directory.
Differential Revision: https://reviews.llvm.org/D55519
llvm-svn: 348865
Eric Fiselier [Tue, 11 Dec 2018 16:53:25 +0000 (16:53 +0000)]
Pass PartialOverloading argument to the correct corresponding parameter
llvm-svn: 348864
Max Moroz [Tue, 11 Dec 2018 16:47:12 +0000 (16:47 +0000)]
[ASan] Minor documentation fix: clarify static linking limitation.
Summary:
ASan does not support statically linked binaries, but ASan runtime itself can
be statically linked into a target binary executable.
Reviewers: eugenis, kcc
Reviewed By: eugenis
Subscribers: cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D55066
llvm-svn: 348863
Sanjay Patel [Tue, 11 Dec 2018 16:38:03 +0000 (16:38 +0000)]
[InstCombine] try to convert x86 movmsk intrinsic to generic IR (PR39927)
call iM movmsk(sext <N x i1> X) --> zext (bitcast <N x i1> X to iN) to iM
This has the potential to create less-than-8-bit scalar types as shown in
some of the test diffs, but it looks like the backend knows how to deal
with that in these patterns. This is the simple part of the fix suggested in:
https://bugs.llvm.org/show_bug.cgi?id=39927
Differential Revision: https://reviews.llvm.org/D55529
llvm-svn: 348862
Nikita Popov [Tue, 11 Dec 2018 16:37:26 +0000 (16:37 +0000)]
[BDCE] Add tests for PR39771; NFC
These involve cases where certain uses are dead by means of having
no demanded bits, even though the used instruction still has demanded
bits when other uses are taken into account. BDCE currently does not
simplify such cases.
llvm-svn: 348861
Aaron Ballman [Tue, 11 Dec 2018 16:34:59 +0000 (16:34 +0000)]
Adding tests for -ast-dump; NFC.
This adds tests for expressions in C++.
llvm-svn: 348860
Sid Manning [Tue, 11 Dec 2018 16:15:03 +0000 (16:15 +0000)]
[llvm-readelf] Add -e/--headers support to readobj/elf
Differential Revision: https://reviews.llvm.org/D55298
llvm-svn: 348859
Stefan Pintilie [Tue, 11 Dec 2018 15:47:57 +0000 (15:47 +0000)]
Revert "[PowerPC] Make no-PIC default to match GCC - CLANG"
This reverts commit rL348299.
llvm-svn: 348858
Michal Gorny [Tue, 11 Dec 2018 15:39:34 +0000 (15:39 +0000)]
[test] [runtime] Permit omp_get_wtick() to return 0.01
Increase the range for omp_get_wtick() test to allow for 0.01
(from <0.01). This is needed for NetBSD where it returns exactly that
value due to CLOCKS_PER_SEC being 100. This should not cause
a significant difference from e.g. FreeBSD where it is 128,
and especially from Linux where CLOCKS_PER_SEC is apparently meaningless
and sysconf(_SC_CLK_TCK) gives 100 as well.
Differential Revision: https://reviews.llvm.org/D55493
llvm-svn: 348857
Michal Gorny [Tue, 11 Dec 2018 15:39:30 +0000 (15:39 +0000)]
[test] [runtime] Do not include alloca.h on NetBSD
On NetBSD, alloca() is in stdlib.h and there is no alloca.h. Adjust
the includes appopriately.
Differential Revision: https://reviews.llvm.org/D55487
llvm-svn: 348856
Michal Gorny [Tue, 11 Dec 2018 15:39:26 +0000 (15:39 +0000)]
[runtime] [test] Use more portable short options to sort(1)
Pass `-n -s` instead of `--numeric --stable` to sort(1), as long options
are not supported by NetBSD sort implementation. `-n` is defined
by POSIX, so it should be fully portable. `-s` is used consistently
at least in GNU sort and FreeBSD sort, and I honestly doubt it would
cause issues with any other implementation supporting `--stable`.
Differential Revision: https://reviews.llvm.org/D55479
llvm-svn: 348855
Michal Gorny [Tue, 11 Dec 2018 15:39:22 +0000 (15:39 +0000)]
[cmake] Use -std=gnu++11 to fix alloca() on NetBSD
Prefer using '-std=gnu++11' over '-std=c++11' when available, as NetBSD
exposes the correct alloca() implementation only with gnu* C/C++
standards.
Differential Revision: https://reviews.llvm.org/D55477
llvm-svn: 348854
Craig Topper [Tue, 11 Dec 2018 15:32:14 +0000 (15:32 +0000)]
Fix not correct imm operand assertion for SUB32ri in X86CondBrFolding::analyzeCompare
Summary:
When doing X86CondBrFolding::analyzeCompare, it will meet the SUB32ri instruction as below to use the global address for its operand,
%733:gr32 = SUB32ri %62:gr32(tied-def 0), @img2buf_normal, implicit-def $eflags
JNE_1 %bb.41, implicit $eflags
so the assertion "assert(MI.getOperand(ValueIndex).isImm() && "Expecting Imm operand")" is not correct and change the assert to if make X86CondBrFolding::analyzeCompare return false as not finding the compare for this
Patch by Jianping Chen
Reviewers: smaslov, LuoYuanke, liutianle, Jianping
Reviewed By: Jianping
Subscribers: lebedev.ri, llvm-commits
Differential Revision: https://reviews.llvm.org/D54250
llvm-svn: 348853
Michal Gorny [Tue, 11 Dec 2018 15:30:04 +0000 (15:30 +0000)]
[cmake] Rename append_if to avoid collision with LLVM
Rename the 'append_if' macro used in libunwind to 'unwind_append_if'.
Otherwise, when used in a combined LLVM+libunwind build, it overrides
the *incompatible* 'append_if' function from LLVM and breaks projects
following libunwind, e.g. OpenMP.
Differential Revision: https://reviews.llvm.org/D55476
llvm-svn: 348852
Sanjay Patel [Tue, 11 Dec 2018 15:29:40 +0000 (15:29 +0000)]
[x86] clean up code for converting 16-bit ops to LEA; NFC
As discussed in D55494, we want to extend this to handle 8-bit
ops too, but that could be extended further to enable this on
32-bit systems too.
llvm-svn: 348851
Louis Dionne [Tue, 11 Dec 2018 15:27:10 +0000 (15:27 +0000)]
[libcxx] Fix test failure on GCC 4.9
GCC 4.9 seems to think that a constexpr default constructor implies
the constructor to be noexcept.
llvm-svn: 348850
Pavel Labath [Tue, 11 Dec 2018 15:21:15 +0000 (15:21 +0000)]
Rename ObjectFile::GetHeaderAddress to GetBaseAddress
Summary:
This function was named such because in the case of MachO files, the
mach header is located at this address. However all (most?) usages of
this function were not interested in that fact, but the fact that this
address is used as the base address for expressing various relative
addresses in the object file.
For other object file formats, this name is not appropriate (and it's
probably the reason why this function was not implemented in these
classes). In the ELF case the ELF header will usually end up at this
address, but this is a result of the linker optimizing the file layout
and not a requirement of the spec. For COFF files, I believe the is no
header located at this address either.
Reviewers: clayborg, jasonmolenda, amccarth, lemo, stella.stamenova
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D55422
llvm-svn: 348849
Gabor Horvath [Tue, 11 Dec 2018 14:40:48 +0000 (14:40 +0000)]
[analyzer] Fix a minor typo.
llvm-svn: 348848
Louis Dionne [Tue, 11 Dec 2018 14:22:28 +0000 (14:22 +0000)]
[pair] Mark constructors as conditionally noexcept
Summary:
std::tuple marks its constructors as noexcept when the corresponding
memberwise constructors are noexcept too -- this commit improves std::pair
so that it behaves the same.
This is a re-application of r348824, which broke the build in C++03 mode
because a test was marked as supported in C++03 when it shouldn't be.
Note:
I did not add support in the explicit and non-explicit `pair(_Tuple&& __p)`
constructors because those are non-standard extensions, and supporting them
properly is tedious (we have to copy the rvalue-referenceness of the deduced
_Tuple&& onto the result of tuple_element).
<rdar://problem/
29537079>
Reviewers: mclow.lists, EricWF
Subscribers: christof, llvm-commits
Differential Revision: https://reviews.llvm.org/D48669
llvm-svn: 348847
Louis Dionne [Tue, 11 Dec 2018 14:15:54 +0000 (14:15 +0000)]
[libcxx] Fix test on compilers that do not support char8_t yet
llvm-svn: 348846
Sanjay Patel [Tue, 11 Dec 2018 14:05:03 +0000 (14:05 +0000)]
[x86] remove dead code for 16-bit LEA formation; NFC
As discussed in:
D55494
...this code has been disabled/dead for a long time (the code references
Athlon and Pentium 4), and there's almost no chance that it will be used
given the last decade of uarch evolution. Also, in SDAG we promote 16-bit
ops to 32-bit, so there's almost no way to test this code any more.
llvm-svn: 348845
Clement Courbet [Tue, 11 Dec 2018 13:38:43 +0000 (13:38 +0000)]
Revert r348843 "[CodeGen] Allow mempcy/memset to generate small overlapping stores."
Breaks ARM/memcpy-inline.ll
llvm-svn: 348844
Clement Courbet [Tue, 11 Dec 2018 13:15:56 +0000 (13:15 +0000)]
[CodeGen] Allow mempcy/memset to generate small overlapping stores.
Summary:
All targets either just return false here or properly model `Fast`, so I
don't think there is any reason to prevent CodeGen from doing the right
thing here.
Subscribers: nemanjai, javed.absar, eraman, jsji, llvm-commits
Differential Revision: https://reviews.llvm.org/D55365
llvm-svn: 348843
Jonas Toth [Tue, 11 Dec 2018 12:45:51 +0000 (12:45 +0000)]
Use the standard Duration factory matcher
Summary: A new check came in over the weekend; it should use our existing infrastructure for matching `absl::Duration` factories.
Patch by hwright.
Reviewers: JonasToth
Reviewed By: JonasToth
Subscribers: astrelni
Tags: #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D55541
llvm-svn: 348842
Dan Liew [Tue, 11 Dec 2018 12:43:44 +0000 (12:43 +0000)]
Fix bug where we'd try symbolize a second time with the same arguments.
Summary:
Fix bug where we'd try symbolize a second time with the same arguments even though symbolization failed the first time.
This looks like a long standing typo given that the guard for trying
symbolization again is to only try it if symbolization failed using
`binary` and `original_binary != binary`.
Reviewers: kubamracek, glider, samsonov
Subscribers: #sanitizers, llvm-commits
Differential Revision: https://reviews.llvm.org/D55504
llvm-svn: 348841
Jonas Toth [Tue, 11 Dec 2018 12:42:17 +0000 (12:42 +0000)]
[clang-tidy] NFC Consolidate test absl::Time implementation
Summary: Several tests re-implement these same prototypes (differently), so we can put them in a common location.
Patch by hwright.
Reviewers: JonasToth
Reviewed By: JonasToth
Tags: #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D55540
llvm-svn: 348840
Simon Pilgrim [Tue, 11 Dec 2018 11:08:40 +0000 (11:08 +0000)]
[TargetLowering] Add ISD::EXTRACT_VECTOR_ELT support to SimplifyDemandedBits
Let SimplifyDemandedBits attempt to simplify all elements of a vector extraction.
Part of PR39689.
llvm-svn: 348839
Simon Pilgrim [Tue, 11 Dec 2018 10:44:54 +0000 (10:44 +0000)]
Fix "not all control paths return a value" MSVC warnings. NFCI.
llvm-svn: 348838
David Stenberg [Tue, 11 Dec 2018 10:33:38 +0000 (10:33 +0000)]
[DeadArgElim] Fixes for dbg.values using dead arg/return values
Summary:
When eliminating a dead argument or return value in a function with
local linkage, all uses, including in dbg.value intrinsics, would be
replaced with null constants. This would mean that, for example for an
integer argument, the debug info would incorrectly express that the
value is 0. Instead, replace all uses with undef to indicate that the
argument/return value is optimized out.
Also, make sure that metadata uses of return values are rewritten even
if there are no non-metadata uses of the value.
As a bit of historical curiosity, the code that emitted null constants
was introduced in the initial check-in of the pass in 2003, before
'undef' values even existed in LLVM.
This fixes PR23260.
Reviewers: dblaikie, aprantl, vsk, djtodoro
Reviewed By: aprantl
Subscribers: llvm-commits
Tags: #debug-info
Differential Revision: https://reviews.llvm.org/D55513
llvm-svn: 348837
Martin Storsjo [Tue, 11 Dec 2018 09:53:11 +0000 (09:53 +0000)]
[SEH] Zero-initialize EXCEPTION_RECORD and UNWIND_HISTORY_TABLE before calling RtlUnwindEx
This fixes PR39935.
llvm-svn: 348836
Ranjeet Singh [Tue, 11 Dec 2018 09:32:49 +0000 (09:32 +0000)]
Cleanup test case by removing unused attribute dso_local
Attribute 'dso_local' generated in bitcode from compiling
original C file but isn't needed.
Differential Revision: https://reviews.llvm.org/D55521
llvm-svn: 348835
Clement Courbet [Tue, 11 Dec 2018 08:39:11 +0000 (08:39 +0000)]
Reland r348741 "[Sema] Further improvements to to static_assert diagnostics."
Fix a dangling reference to temporary, never return nullptr.
llvm-svn: 348834
Craig Topper [Tue, 11 Dec 2018 07:41:06 +0000 (07:41 +0000)]
[X86] Switch the 64-bit mulx schedule test to use inline assembly.
I'm not sure we should always prefer MULX over MUL. So making the MULX guaranteed with inline assembly.
llvm-svn: 348833
Martin Storsjo [Tue, 11 Dec 2018 07:34:14 +0000 (07:34 +0000)]
Don't export assembly functions when function visibility annotations are disabled
Patch by Peiyuan Song!
Differential Revision: https://reviews.llvm.org/D55537
llvm-svn: 348832
Clement Courbet [Tue, 11 Dec 2018 07:28:00 +0000 (07:28 +0000)]
Revert r348830 "[Sema]improve static_assert(!expr)"
Submitted the wrong change.
llvm-svn: 348831
Clement Courbet [Tue, 11 Dec 2018 07:04:49 +0000 (07:04 +0000)]
[Sema]improve static_assert(!expr)
llvm-svn: 348830
Marshall Clow [Tue, 11 Dec 2018 06:06:49 +0000 (06:06 +0000)]
Fix problems with char8_t stuff on compilers that don't support char8_t yet
llvm-svn: 348829
Marshall Clow [Tue, 11 Dec 2018 04:35:44 +0000 (04:35 +0000)]
Second part of P0482 - char8_t. Reviewed as https://reviews.llvm.org/D55308
llvm-svn: 348828
Richard Trieu [Tue, 11 Dec 2018 03:18:39 +0000 (03:18 +0000)]
Move CodeGenOptions from Frontend to Basic
Basic uses CodeGenOptions and should not depend on Frontend.
llvm-svn: 348827
Martell Malone [Tue, 11 Dec 2018 03:14:56 +0000 (03:14 +0000)]
[PPC][NFC] store operands are dst not src
Differential Revision: https://reviews.llvm.org/D55502
llvm-svn: 348826
Louis Dionne [Tue, 11 Dec 2018 02:32:46 +0000 (02:32 +0000)]
Revert "[pair] Mark constructors as conditionally noexcept"
This broke the tests on Linux. Reverting until I find out why the tests
are broken (tomorrow).
llvm-svn: 348825
Louis Dionne [Tue, 11 Dec 2018 02:17:23 +0000 (02:17 +0000)]
[pair] Mark constructors as conditionally noexcept
Summary:
std::tuple marks its constructors as noexcept when the corresponding
memberwise constructors are noexcept too -- this commit improves std::pair
so that it behaves the same.
Note:
I did not add support in the explicit and non-explicit `pair(_Tuple&& __p)`
constructors because those are non-standard extensions, and supporting them
properly is tedious (we have to copy the rvalue-referenceness of the deduced
_Tuple&& onto the result of tuple_element).
<rdar://problem/
29537079>
Reviewers: mclow.lists, EricWF
Subscribers: christof, llvm-commits
Differential Revision: https://reviews.llvm.org/D48669
llvm-svn: 348824