OSDN Git Service
Mauro Rossi [Sat, 9 Jun 2018 19:04:26 +0000 (21:04 +0200)]
android: ExecutionEngine/Orc: update sources list
Mauro Rossi [Sat, 9 Jun 2018 20:07:36 +0000 (22:07 +0200)]
android: Demangle: add libLLVMDemangle static dependency
Mauro Rossi [Sat, 9 Jun 2018 19:04:26 +0000 (21:04 +0200)]
android: DebugInfo/DWARF: update sources list
Mauro Rossi [Sat, 9 Jun 2018 19:04:26 +0000 (21:04 +0200)]
android: BinaryFormat: update sources list
Mauro Rossi [Sat, 9 Jun 2018 19:04:26 +0000 (21:04 +0200)]
android: Analysis: update sources list
Mauro Rossi [Sun, 10 Jun 2018 18:35:33 +0000 (20:35 +0200)]
android: Support: update sources list
Source files updated for Support target
Mauro Rossi [Sat, 9 Jun 2018 10:58:01 +0000 (12:58 +0200)]
android: [Support] Move syntax highlighting into support
Apply changes also in Android targets
Fixes the following building error:
ninja: error: 'external/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp',
needed by 'out/target/product/x86/obj/STATIC_LIBRARIES/libLLVMDebugInfoDWARF_intermediates/SyntaxHighlighting.o',
missing and no known rule to make it
12:05:41 ninja failed with: exit status 1
Reference:
01d72e5767 ("[Support] Move syntax highlighting into support")
Mauro Rossi [Sat, 9 Jun 2018 19:04:26 +0000 (21:04 +0200)]
android: CodeGen: update sources list
Mauro Rossi [Sat, 9 Jun 2018 12:43:57 +0000 (14:43 +0200)]
android: [IR][CodeGen] Move EVT to CodeGen layer.
Apply the change in Android target
Fixes following building error:
ninja: error: 'external/llvm/lib/IR/ValueTypes.cpp',
needed by 'out/target/product/x86/obj/STATIC_LIBRARIES/libLLVMCore_intermediates/ValueTypes.o',
missing and no known rule to make it
14:32:04 ninja failed with: exit status 1
Reference:
f137ed238d ("[IR][CodeGen] Remove dependency on EVT from IR/Function.cpp.
Move EVT to CodeGen layer.")
Mauro Rossi [Sat, 9 Jun 2018 12:32:34 +0000 (14:32 +0200)]
android: Codegen: Rename ExecutionDepsFix files to ExecutionDomainFix
Rename the source file in Android target
Fixes following building error:
ninja: error: 'external/llvm/lib/CodeGen/ExecutionDepsFix.cpp',
needed by 'out/target/product/x86/obj/STATIC_LIBRARIES/libLLVMCodeGen_intermediates/ExecutionDepsFix.o',
missing and no known rule to make it
13:15:38 ninja failed with: exit status 1
Reference:
d6bf9cdf27 ("Rename ExecutionDepsFix files to ExecutionDomainFix")
Mauro Rossi [Sat, 9 Jun 2018 11:13:30 +0000 (13:13 +0200)]
android: Codegen/AsmPrinter: Rename DwarfAccelTable to AccelTable
Apply changes also in Android targets
Fixes the following building error:
ninja: error: 'external/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp',
needed by 'out/target/product/x86/obj/STATIC_LIBRARIES/libLLVMAsmPrinter_intermediates/DwarfAccelTable.o',
missing and no known rule to make it
12:13:33 ninja failed with: exit status 1
Reference:
633599ba03 ("[NFC] Rename DwarfAccelTable and move header.")
Mauro Rossi [Sun, 10 Jun 2018 18:17:20 +0000 (20:17 +0200)]
android: fix AMDGPU target build
Source files and tblgen targets are updated for AMDGPU target
Mauro Rossi [Sat, 9 Jun 2018 10:00:37 +0000 (12:00 +0200)]
android: [AMDGPU][Waitcnt] Remove the old waitcnt pass
Remove source also in Android AMDGPU target
Fixes the following building error:
ninja: error: 'external/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp',
needed by 'out/target/product/x86/obj/STATIC_LIBRARIES/libLLVMAMDGPUCodeGen_intermediates/SIInsertWaits.o',
missing and no known rule to make it
11:44:43 ninja failed with: exit status 1
Reference:
ac95aa536 ("[AMDGPU][Waitcnt] Remove the old waitcnt pass")
Mauro Rossi [Sat, 9 Jun 2018 09:46:59 +0000 (11:46 +0200)]
android: AMDGPU: Rename OpenCL lowering pass to be R600 specific.
Rename the source file in Android AMDGPU target
Fixes following building error:
ninja: error: 'external/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp',
needed by 'out/target/product/x86/obj/STATIC_LIBRARIES/libLLVMAMDGPUCodeGen_intermediates/AMDGPUOpenCLImageTypeLoweringPass.o',
missing and no known rule to make it
11:26:11 ninja failed with: exit status 1
Reference:
0d44e5b362 ("AMDGPU: Rename OpenCL lowering pass to be R600 specific.")
Mauro Rossi [Sat, 9 Jun 2018 16:42:18 +0000 (18:42 +0200)]
android: add tblgen rules for searchable-tables targets
Required for AMDGPUGenSearchableTables.inc target
Mauro Rossi [Sat, 9 Jun 2018 19:04:26 +0000 (21:04 +0200)]
android: Target/X86: update sources list
Mauro Rossi [Fri, 19 Jan 2018 13:10:18 +0000 (14:10 +0100)]
android: fix Target/ARM build
Changelog:
updated list of *.cpp sources in ARM Android.mk makefiles
added lib/Target/ARM/Utils/Android.mk to build libLLVMARMUtils module
shared_llvm.mk: added libLLVMARMUtils to arm static libraries
main Android.mk: lib/Target/ARM/Utils path added
llvm-tblgen-rules.mk: new rule for ARMGenSystemRegister.inc aligned to AMR Cmakelist.txt
ARM modules Android.mk: added ARMGenSystemRegister.inc generated file where necessary
ARM modules Android.mk: added *GEN_ATTRIBUTES_MK, *GEN_INTRINSICS_MK rules where necessary
Mauro Rossi [Sat, 20 Jan 2018 19:57:19 +0000 (20:57 +0100)]
android: Target/X86/InstPrinter: fix {Attributes,Intrinsics}.gen dependencies
Makefile rules are aligned to X86/AsmParser ones
Fixes the following building errors:
host C++: libLLVM70X86AsmPrinter_32 <= external/llvm70/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp
...
In file included from external/llvm70/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp:17:
In file included from external/llvm70/lib/Target/X86/InstPrinter/X86InstComments.h:18:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/CodeGen/MachineInstr.h:23:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/Analysis/AliasAnalysis.h:44:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/Analysis/MemoryLocation.h:21:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/IR/CallSite.h:32:
external/llvm70/lib/Transforms/Hello/../../../include/llvm/IR/Attributes.h:74:14: fatal error: 'llvm/IR/Attributes.gen' file not found
#include "llvm/IR/Attributes.gen"
^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
target C++: libLLVM70X86AsmPrinter_32 <= external/llvm70/lib/Target/X86/InstPrinter/X86InstComments.cpp
...
In file included from external/llvm70/lib/Target/X86/InstPrinter/X86InstComments.cpp:15:
In file included from external/llvm70/lib/Target/X86/InstPrinter/X86InstComments.h:18:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/CodeGen/MachineInstr.h:23:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/Analysis/AliasAnalysis.h:44:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/Analysis/MemoryLocation.h:21:
In file included from external/llvm70/lib/Transforms/Hello/../../../include/llvm/IR/CallSite.h:32:
external/llvm70/lib/Transforms/Hello/../../../include/llvm/IR/Attributes.h:74:14: fatal error: 'llvm/IR/Attributes.gen' file not found
#include "llvm/IR/Attributes.gen"
^
1 error generated.
Mauro Rossi [Sat, 3 Feb 2018 18:43:17 +0000 (19:43 +0100)]
android: add support for "retpoline" x86 mitigation
Builds the new sources added by commit
e307072 ("Merging r323155:")
Mauro Rossi [Fri, 19 Jan 2018 17:44:18 +0000 (18:44 +0100)]
android: update sources file names for llvm70
*SRC_FILES lists are aligned as per Cmakelist.txt files,
to avoid building errors due to changes in codebase
e.g. AMDGPUCodeObjectMetadata.cpp => AMDGPUMetadata.cpp
ninja: error: 'external/llvm70/lib/Support/AMDGPUCodeObjectMetadata.cpp',
needed by 'out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVM70Support_intermediates/AMDGPUCodeObjectMetadata.o',
missing and no known rule to make it
or new missing sources:
external/llvm70/utils/TableGen/CodeGenDAGPatterns.cpp:88: error: undefined reference to 'llvm::ValueTypeByHwMode:
Qiang Yu [Thu, 17 Aug 2017 01:45:47 +0000 (09:45 +0800)]
for new mesa build (LLVM70)
Change-Id: I6008945796c2fdd0bcfe4a21b171d962be593646
Qiang Yu [Fri, 11 Aug 2017 02:58:55 +0000 (10:58 +0800)]
for sync with upstream update
Change-Id: Ifa8ab4651323b78ba69ac46c421f3d6ad2cf7a50
Qiang Yu [Tue, 1 Aug 2017 07:39:40 +0000 (15:39 +0800)]
CLEAR_TBLGEN_VARS to CLEAR_TBLGEN_VARS70
find . -type f -name "*.mk" -exec sed -i 's/CLEAR_TBLGEN_VARS/CLEAR_TBLGEN_VARS70/g' {} +
Change-Id: I49cea6080f2c69f241d1a28f55f342aa95f62c7b
Qiang Yu [Tue, 1 Aug 2017 07:38:22 +0000 (15:38 +0800)]
TBLGEN_TD_DIR to TBLGEN_TD_DIR70
find . -type f -name "*.mk" -exec sed -i 's/TBLGEN_TD_DIR/TBLGEN_TD_DIR70/g' {} +
Change-Id: I6ea2fb993626240761432fb3db38caead251e78a
Qiang Yu [Tue, 1 Aug 2017 07:37:29 +0000 (15:37 +0800)]
INTRINSICTD to INTRINSICTD70
find . -type f -name "*.mk" -exec sed -i 's/INTRINSICTD/INTRINSICTD70/g' {} +
Change-Id: I042b6a3526260d3d811b4cbba1751e73ffdd0fd6
Qiang Yu [Tue, 1 Aug 2017 07:36:24 +0000 (15:36 +0800)]
ATTRIBUTETD to ATTRIBUTETD70
find . -type f -name "*.mk" -exec sed -i 's/ATTRIBUTETD/ATTRIBUTETD70/g' {} +
Change-Id: I03509f4ce804035e3a12a9a36d8158fb2052027d
Qiang Yu [Tue, 1 Aug 2017 07:35:30 +0000 (15:35 +0800)]
TBLGEN_TABLES to TBLGEN_TABLES70
find . -type f -name "*.mk" -exec sed -i 's/TBLGEN_TABLES/TBLGEN_TABLES70/g' {} +
Change-Id: I4a1d920b0371b659637f08cc7426a5c7b6f47bdc
Qiang Yu [Tue, 1 Aug 2017 07:33:46 +0000 (15:33 +0800)]
transform-td-to-out to transform-td-to-out70
find . -type f -name "*.mk" -exec sed -i 's/transform-td-to-out/transform-td-to-out70/g' {} +
Change-Id: I0f068d1e05366de42771cf273ebdb5c8fcc18cf9
Qiang Yu [Tue, 1 Aug 2017 07:32:52 +0000 (15:32 +0800)]
transform-host-td-to-out to transform-host-td-to-out70
find . -type f -name "*.mk" -exec sed -i 's/transform-host-td-to-out/transform-host-td-to-out70/g' {} +
Change-Id: I9e7c253ab9c25b8b74538b7e5eda84fd024ca4d9
Qiang Yu [Tue, 1 Aug 2017 07:30:20 +0000 (15:30 +0800)]
transform-device-td-to-out to transform-device-td-to-out70
find . -type f -name "*.mk" -exec sed -i 's/transform-device-td-to-out/transform-device-td-to-out70/g' {} +
Change-Id: I973ec407d87d5972abe72aa39e75db4846adabd2
Qiang Yu [Tue, 1 Aug 2017 07:19:53 +0000 (15:19 +0800)]
LLVM_SUPPORTED_ARCH to LLVM70_SUPPORTED_ARCH
find . -type f -name "*.mk" -exec sed -i 's/LLVM_SUPPORTED_ARCH/LLVM70_SUPPORTED_ARCH/g' {} +
Change-Id: I239a21f1e350a8ddb0e8c122ea35d2a91c28cb71
Qiang Yu [Tue, 1 Aug 2017 07:16:51 +0000 (15:16 +0800)]
LLVM_GEN_ to LLVM70_GEN_
find . -type f -name "*.mk" -exec sed -i 's/LLVM_GEN_/LLVM70_GEN_/g' {} +
Change-Id: Ia0680db15a1318cac2750a09c07b1c8c8870cb5c
Qiang Yu [Tue, 1 Aug 2017 07:01:50 +0000 (15:01 +0800)]
LLVM_DEVICE_BUILD_MK to LLVM70_DEVICE_BUILD_MK
find . -type f -name "*.mk" -exec sed -i 's/LLVM_DEVICE_BUILD_MK/LLVM70_DEVICE_BUILD_MK/g' {} +
Change-Id: If859305d7d6220a8a7cf49a515f09a008162c091
Qiang Yu [Tue, 1 Aug 2017 07:00:40 +0000 (15:00 +0800)]
LLVM_HOST_BUILD_MK to LLVM70_HOST_BUILD_MK
find . -type f -name "*.mk" -exec sed -i 's/LLVM_HOST_BUILD_MK/LLVM70_HOST_BUILD_MK/g' {} +
Change-Id: Ifb3c227afbc06823fe3275c88a0af8b754ce5cfb
Qiang Yu [Tue, 1 Aug 2017 06:57:55 +0000 (14:57 +0800)]
LLVM_TBLGEN to LLVM70_TBLGEN
find . -type f -name "*.mk" -exec sed -i 's/LLVM_TBLGEN/LLVM70_TBLGEN/g' {} +
Change-Id: Ida23ea5bafd566034ad172dc84d4a53fe399f914
Qiang Yu [Tue, 1 Aug 2017 06:55:37 +0000 (14:55 +0800)]
LLVM_ROOT_PATH to LLVM70_ROOT_PATH
find . -type f -name "*.mk" -exec sed -i 's/LLVM_ROOT_PATH/LLVM70_ROOT_PATH/g' {} +
Change-Id: Ie102b63dbd4200d923a398d57d05f6e56b1e970b
Qiang Yu [Tue, 1 Aug 2017 06:27:55 +0000 (14:27 +0800)]
more llvm to llvm70
Change-Id: I15d009a0b5e2714b9da5acbf224c90777e79a96e
Qiang Yu [Tue, 1 Aug 2017 06:06:50 +0000 (14:06 +0800)]
remove un-needed utils
Change-Id: Icf27befffad1a982c5199b0a5a6ed4914871710e
Qiang Yu [Tue, 1 Aug 2017 06:05:31 +0000 (14:05 +0800)]
don't build tools
Change-Id: I0bffab8e880a9eb07778e666a89782453777ab71
Qiang Yu [Tue, 1 Aug 2017 06:03:07 +0000 (14:03 +0800)]
rename LLVMxxx to LLVM70xxx
Change-Id: I6e1a5a5e50a5c06d12fff20ee889b2c9b1d8ab3f
Qiang Yu [Tue, 1 Aug 2017 05:57:12 +0000 (13:57 +0800)]
rename libLLVM to libLLVM70
find . -type f -name "*.mk" -exec sed -i 's/libLLVM/libLLVM70/g' {} +
Change-Id: I7868e2f0d559077d04233164c378f5ad4de089ac
Qiang Yu [Sun, 16 Jul 2017 15:52:25 +0000 (23:52 +0800)]
enable GlobalISel
Change-Id: I54623fef9a8f523db2827c4371c93ce42354e790
Qiang Yu [Fri, 14 Jul 2017 10:08:17 +0000 (18:08 +0800)]
now mesa can be compiled
Change-Id: I7ebd71ab29384a5850bcc8227e007704d24fb057
Qiang Yu [Fri, 14 Jul 2017 00:33:14 +0000 (08:33 +0800)]
update config
Change-Id: Id0c53452b223ebeeed6dded8f47f19d71f4a2310
Qiang Yu [Thu, 13 Jul 2017 14:43:17 +0000 (22:43 +0800)]
add device include config
Change-Id: If52fde7458825a853cafef004649339da1b87236
Qiang Yu [Thu, 13 Jul 2017 13:51:59 +0000 (21:51 +0800)]
move all mk file
Change-Id: If2445f05934836410b1f1bbdc9da22b0a193d646
Tom Stellard [Tue, 15 Oct 2019 03:50:26 +0000 (03:50 +0000)]
Merging r372020 and r372182:
------------------------------------------------------------------------
r372020 | rnk | 2019-09-16 11:49:09 -0700 (Mon, 16 Sep 2019) | 30 lines
[PGO] Use linkonce_odr linkage for __profd_ variables in comdat groups
This fixes relocations against __profd_ symbols in discarded sections,
which is PR41380.
In general, instrumentation happens very early, and optimization and
inlining happens afterwards. The counters for a function are calculated
early, and after inlining, counters for an inlined function may be
widely referenced by other functions.
For C++ inline functions of all kinds (linkonce_odr &
available_externally mainly), instr profiling wants to deduplicate these
__profc_ and __profd_ globals. Otherwise the binary would be quite
large.
I made __profd_ and __profc_ comdat in r355044, but I chose to make
__profd_ internal. At the time, I was only dealing with coverage, and in
that case, none of the instrumentation needs to reference __profd_.
However, if you use PGO, then instrumentation passes add calls to
__llvm_profile_instrument_range which reference __profd_ globals. The
solution is to make these globals externally visible by using
linkonce_odr linkage for data as was done for counters.
This is safe because PGO adds a CFG hash to the names of the data and
counter globals, so if different TUs have different globals, they will
get different data and counter arrays.
Reviewers: xur, hans
Differential Revision: https://reviews.llvm.org/D67579
------------------------------------------------------------------------
------------------------------------------------------------------------
r372182 | rnk | 2019-09-17 14:10:49 -0700 (Tue, 17 Sep 2019) | 12 lines
[PGO] Don't use comdat groups for counters & data on COFF
For COFF, a comdat group is really a symbol marked
IMAGE_COMDAT_SELECT_ANY and zero or more other symbols marked
IMAGE_COMDAT_SELECT_ASSOCIATIVE. Typically the associative symbols in
the group are not external and are not referenced by other TUs, they are
things like debug info, C++ dynamic initializers, or other section
registration schemes. The Visual C++ linker reports a duplicate symbol
error for symbols marked IMAGE_COMDAT_SELECT_ASSOCIATIVE even if they
would be discarded after handling the leader symbol.
Fixes coverage-inline.cpp in check-profile after r372020.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@374858
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Sat, 12 Oct 2019 02:47:19 +0000 (02:47 +0000)]
Merging r372606:
------------------------------------------------------------------------
r372606 | spatel | 2019-09-23 06:30:23 -0700 (Mon, 23 Sep 2019) | 3 lines
[x86] fix assert with horizontal math + broadcast of vector (PR43402)
https://bugs.llvm.org/show_bug.cgi?id=43402
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@374633
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Thu, 10 Oct 2019 19:44:38 +0000 (19:44 +0000)]
[9.0 branch][ARM] VFPv2 only supports 16 D registers.
Summary:
Patch for 9.0.1.
Simplified version of r372186/r372187: fix the meaning of the "vfpv2" and "vfpv2sp" features, but keep around the useless "vfp2d16" and "vfp2d16sp" features, to reduce the risk on the release branch.
Fixes https://bugs.llvm.org/show_bug.cgi?id=43365
Reviewers: t.p.northover, tstellar
Reviewed By: t.p.northover
Subscribers: kristof.beyls, hiraditya, kristina, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68675
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@374433
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 10 Oct 2019 07:33:42 +0000 (07:33 +0000)]
gn: Bump version to 9.0.1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@374286
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 9 Oct 2019 20:41:02 +0000 (20:41 +0000)]
Bump version to 9.0.1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@374218
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 9 Oct 2019 18:17:18 +0000 (18:17 +0000)]
git-llvm: Update for release_90 branch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@374193
91177308-0d34-0410-b5e6-
96231b3b80d8
Kai Nacke [Tue, 17 Sep 2019 19:16:16 +0000 (19:16 +0000)]
Add external project LDC to release notes.
LDC, the LLVM-based D compiler, is already ready for LLVM 9.0.0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@372167
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 16 Sep 2019 09:11:39 +0000 (09:11 +0000)]
ReleaseNotes: known issue: PR40547
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371964
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 10 Sep 2019 07:31:55 +0000 (07:31 +0000)]
Merging r371434:
------------------------------------------------------------------------
r371434 | efriedma | 2019-09-09 20:29:27 +0200 (Mon, 09 Sep 2019) | 15 lines
[IfConversion] Correctly handle cases where analyzeBranch fails.
If analyzeBranch fails, on some targets, the out parameters point to
some blocks in the function. But we can't use that information, so make
sure to clear it out. (In some places in IfConversion, we assume that
any block with a TrueBB is analyzable.)
The change to the testcase makes it trigger a bug on builds without this
fix: IfConvertDiamond tries to perform a followup "merge" operation,
which isn't legal, and we somehow end up with a branch to a deleted MBB.
I'm not sure how this doesn't crash the compiler.
Differential Revision: https://reviews.llvm.org/D67306
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371490
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 9 Sep 2019 09:48:38 +0000 (09:48 +0000)]
Merging r370592:
------------------------------------------------------------------------
r370592 | rksimon | 2019-08-31 18:21:31 +0200 (Sat, 31 Aug 2019) | 3 lines
[X86] EltsFromConsecutiveLoads - Don't confuse elt count with vector element count (PR43170)
EltsFromConsecutiveLoads was assuming that the number of input elts was the same as the number of elements in the output vector type when creating a zeroing shuffle, causing an assert when subvectors were being combined instead of just scalars.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371382
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 9 Sep 2019 09:43:19 +0000 (09:43 +0000)]
Merging r371221 and r371224:
------------------------------------------------------------------------
r371221 | spatel | 2019-09-06 18:10:18 +0200 (Fri, 06 Sep 2019) | 3 lines
[SimplifyLibCalls] handle pow(x,-0.0) before it can assert (PR43233)
https://bugs.llvm.org/show_bug.cgi?id=43233
------------------------------------------------------------------------
------------------------------------------------------------------------
r371224 | jfb | 2019-09-06 18:26:59 +0200 (Fri, 06 Sep 2019) | 39 lines
[InstCombine] pow(x, +/- 0.0) -> 1.0
Summary:
This isn't an important optimization at all... We're already doing:
pow(x, 0.0) -> 1.0
My patch merely teaches instcombine that -0.0 does the same.
However, doing this fixes an AMAZING bug! Compile this program:
extern "C" double pow(double, double);
double boom(double base) {
return pow(base, -0.0);
}
With:
clang++ ~/Desktop/fast-math.cpp -ffast-math -O2 -S
And clang will crash with a signal. Wow, fast math is so fast it ICEs the
compiler! Arguably, the generated math is infinitely fast.
What's actually happening is that we recurse infinitely in getPow. In debug we
hit its assertion:
assert(Exp != 0 && "Incorrect exponent 0 not handled");
We avoid this entire mess if we instead recognize that an exponent of positive
and negative zero yield 1.0.
A separate commit, r371221, fixed the same problem. This only contains the added
tests.
<rdar://problem/
54598300>
Reviewers: scanon
Subscribers: hiraditya, jkorous, dexonsmith, ributzka, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67248
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371381
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 9 Sep 2019 09:36:49 +0000 (09:36 +0000)]
Merging r371305 and r371307:
------------------------------------------------------------------------
r371305 | nikic | 2019-09-07 14:03:48 +0200 (Sat, 07 Sep 2019) | 1 line
[X86] Add test for PR43230; NFC
------------------------------------------------------------------------
------------------------------------------------------------------------
r371307 | nikic | 2019-09-07 14:13:44 +0200 (Sat, 07 Sep 2019) | 9 lines
[X86] Fix pshuflw formation from repeated shuffle mask (PR43230)
Fix for https://bugs.llvm.org/show_bug.cgi?id=43230.
When creating PSHUFLW from a repeated shuffle mask, we have to apply
the checks to the repeated mask, not the original one. For the test
case from PR43230 the inspected part of the original mask is all undef.
Differential Revision: https://reviews.llvm.org/D67314
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371378
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 9 Sep 2019 09:08:44 +0000 (09:08 +0000)]
Merging r371111:
------------------------------------------------------------------------
r371111 | efriedma | 2019-09-05 22:02:38 +0200 (Thu, 05 Sep 2019) | 17 lines
[IfConversion] Fix diamond conversion with unanalyzable branches.
The code was incorrectly counting the number of identical instructions,
and therefore tried to predicate an instruction which should not have
been predicated. This could have various effects: a compiler crash,
an assembler failure, a miscompile, or just generating an extra,
unnecessary instruction.
Instead of depending on TargetInstrInfo::removeBranch, which only
works on analyzable branches, just remove all branch instructions.
Fixes https://bugs.llvm.org/show_bug.cgi?id=43121 and
https://bugs.llvm.org/show_bug.cgi?id=41121 .
Differential Revision: https://reviews.llvm.org/D67203
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371377
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 9 Sep 2019 08:59:27 +0000 (08:59 +0000)]
Merging r371262:
------------------------------------------------------------------------
r371262 | nickdesaulniers | 2019-09-06 23:50:11 +0200 (Fri, 06 Sep 2019) | 45 lines
[IR] CallBrInst: scan+update arg list when indirect dest list changes
Summary:
There's an unspoken invariant of callbr that the list of BlockAddress
Constants in the "function args" list match the BasicBlocks in the
"other labels" list. (This invariant is being added to the LangRef in
https://reviews.llvm.org/D67196).
When modifying the any of the indirect destinations of a callbr
instruction (possible jump targets), we need to update the function
arguments if the argument is a BlockAddress whose BasicBlock refers to
the indirect destination BasicBlock being replaced. Otherwise, many
transforms that modify successors will end up violating that invariant.
A recent change to the arm64 Linux kernel exposed this bug, which
prevents the kernel from booting.
I considered maintaining a mapping from indirect destination BasicBlock
to argument operand BlockAddress, but this ends up being a one to
potentially many (though usually one) mapping. Also, the list of
arguments to a function (or more typically inline assembly) ends up
being less than 10. The implementation is significantly simpler to just
rescan the full list of arguments. Because of the one to potentially
many relationship, the full arg list must be scanned (we can't stop at
the first instance).
Thanks to the following folks that reported the issue and helped debug
it:
* Nathan Chancellor
* Will Deacon
* Andrew Murray
* Craig Topper
Link: https://bugs.llvm.org/show_bug.cgi?id=43222
Link: https://github.com/ClangBuiltLinux/linux/issues/649
Link: https://lists.infradead.org/pipermail/linux-arm-kernel/2019-September/678330.html
Reviewers: craig.topper, chandlerc
Reviewed By: craig.topper
Subscribers: void, javed.absar, kristof.beyls, hiraditya, llvm-commits, nathanchance, srhines
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67252
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371376
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 6 Sep 2019 08:17:47 +0000 (08:17 +0000)]
Merging r371088 and r371095:
------------------------------------------------------------------------
r371088 | spatel | 2019-09-05 18:58:18 +0200 (Thu, 05 Sep 2019) | 1 line
[x86] add test for horizontal math bug (PR43225); NFC
------------------------------------------------------------------------
------------------------------------------------------------------------
r371095 | spatel | 2019-09-05 19:28:17 +0200 (Thu, 05 Sep 2019) | 3 lines
[x86] fix horizontal math bug exposed by improved demanded elements analysis (PR43225)
https://bugs.llvm.org/show_bug.cgi?id=43225
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371178
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2019 11:43:42 +0000 (11:43 +0000)]
Merging r370426:
------------------------------------------------------------------------
r370426 | maskray | 2019-08-30 04:20:49 +0200 (Fri, 30 Aug 2019) | 26 lines
[PPC32] Emit R_PPC_GOT_TPREL16 instead R_PPC_GOT_TPREL16_LO
Unlike ppc64, which has ADDISgotTprelHA+LDgotTprelL pairs,
ppc32 just uses LDgotTprelL32, so it does not make lots of sense to use
_LO without a paired _HA.
Emit R_PPC_GOT_TPREL16 instead R_PPC_GOT_TPREL16_LO to match GCC, and
get better linker relocation check. Note, R_PPC_GOT_TPREL16_{HA,LO}
don't have good linker support:
(a) lld does not support R_PPC_GOT_TPREL16_{HA,LO}.
(b) Top of tree ld.bfd does not support R_PPC_GOT_REL16_HA Initial-Exec -> Local-Exec relaxation:
// a.o
addis 3, 3, tsd_tls@got@tprel@ha
lwz 3, tsd_tls@got@tprel@l(3)
add 3, 3, tsd_tls@tls
// b.o
.section .tdata,"awT"; .globl tsd_tls; tsd_tls:
// ld/ld-new a.o b.o
internal error, aborting at ../../bfd/elf32-ppc.c:7952 in ppc_elf_relocate_section
Reviewed By: adalava
Differential Revision: https://reviews.llvm.org/D66925
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371059
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2019 11:33:27 +0000 (11:33 +0000)]
Merging r371048:
------------------------------------------------------------------------
r371048 | jonpa | 2019-09-05 12:20:05 +0200 (Thu, 05 Sep 2019) | 7 lines
[SystemZ] Recognize INLINEASM_BR in backend
Handle the remaining cases also by handling asm goto in
SystemZInstrInfo::getBranchInfo().
Review: Ulrich Weigand
https://reviews.llvm.org/D67151
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371057
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2019 10:50:25 +0000 (10:50 +0000)]
Merging r370430:
------------------------------------------------------------------------
r370430 | djg | 2019-08-30 06:33:22 +0200 (Fri, 30 Aug 2019) | 12 lines
[CodeGen] Fix lowering for returning the result of an extractvalue
When the number of return values exceeds the number of registers available,
SelectionDAGBuilder::visitRet transforms a function's return to use a
pointer to a buffer to hold return values. When the returned value is an
operator such as extractvalue, the value may have a non-zero result number.
Add that number to the indexing when obtaining the values to store.
This fixes https://bugs.llvm.org/show_bug.cgi?id=43132.
Differential Revision: https://reviews.llvm.org/D66978
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371053
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2019 09:57:35 +0000 (09:57 +0000)]
Merging r370720 and r370721:
------------------------------------------------------------------------
r370720 | bjope | 2019-09-03 11:33:40 +0200 (Tue, 03 Sep 2019) | 13 lines
[LV] Precommit test case showing miscompile from PR43166. NFC
Summary: Precommit test case showing miscompile from PR43166.
Reviewers: fhahn, Ayal
Reviewed By: fhahn
Subscribers: rkruppe, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67072
------------------------------------------------------------------------
------------------------------------------------------------------------
r370721 | bjope | 2019-09-03 11:33:55 +0200 (Tue, 03 Sep 2019) | 20 lines
[LV] Fix miscompiles by adding non-header PHI nodes to AllowedExit
Summary:
Fold-tail currently supports reduction last-vector-value live-out's,
but has yet to support last-scalar-value live-outs, including
non-header phi's. As it relies on AllowedExit in order to detect
them and bail out we need to add the non-header PHI nodes to
AllowedExit, otherwise we end up with miscompiles.
Solves https://bugs.llvm.org/show_bug.cgi?id=43166
Reviewers: fhahn, Ayal
Reviewed By: fhahn, Ayal
Subscribers: anna, hiraditya, rkruppe, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67074
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371044
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2019 09:54:36 +0000 (09:54 +0000)]
Merging r370753:
------------------------------------------------------------------------
r370753 | jonpa | 2019-09-03 15:31:22 +0200 (Tue, 03 Sep 2019) | 6 lines
[SystemZ] Recognize INLINEASM_BR in backend.
SystemZInstrInfo::analyzeBranch() needs to check for INLINEASM_BR
instructions, or it will crash.
Review: Ulrich Weigand
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371043
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 5 Sep 2019 09:51:30 +0000 (09:51 +0000)]
Merging r369310:
------------------------------------------------------------------------
r369310 | hubert.reinterpretcast | 2019-08-20 01:12:48 +0200 (Tue, 20 Aug 2019) | 24 lines
[cmake] Link in LLVMPasses due to dependency by LLVMOrcJIT; NFC
Summary:
rL367756 (
f5c40cb) increases the dependency of LLVMOrcJIT on LLVMPasses.
In particular, symbols defined in LLVMPasses that are referenced by the
destructor of `PassBuilder` are now referenced by LLVMOrcJIT through
`Speculation.cpp.o`.
We believe that referencing symbols defined in LLVMPasses in the
destructor of `PassBuilder` is valid, and that adding to the set of such
symbols is legitimate. To support such cases, this patch adds LLVMPasses
to the set of libraries being linked when linking in LLVMOrcJIT causes
such symbols from LLVMPasses to be referenced.
Reviewers: Whitney, anhtuyen, pree-jackie
Reviewed By: pree-jackie
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66441
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@371042
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 30 Aug 2019 15:15:53 +0000 (15:15 +0000)]
index.rst: Remove non-release warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370477
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 30 Aug 2019 09:06:49 +0000 (09:06 +0000)]
Merging r370355:
------------------------------------------------------------------------
r370355 | joerg | 2019-08-29 15:22:30 +0200 (Thu, 29 Aug 2019) | 5 lines
Allow replaceAndRecursivelySimplify to list unsimplified visitees.
This is part of D65280 and split it to avoid ABI changes on the 9.0
release branch.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370447
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 30 Aug 2019 09:02:10 +0000 (09:02 +0000)]
Merging r370404:
------------------------------------------------------------------------
r370404 | rksimon | 2019-08-29 22:22:08 +0200 (Thu, 29 Aug 2019) | 3 lines
[X86][SSE] combinePMULDQ - pmuldq(x, 0) -> zero vector (PR43159)
ISD::isBuildVectorAllZeros permits undef elements to be present, which means we can't return it as a zero vector. PMULDQ/PMULUDQ is an extending multiply so a multiply by zero of the lower 32-bits should result in a zero 64-bit element.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370445
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 30 Aug 2019 07:34:24 +0000 (07:34 +0000)]
ReleaseNotes: pocl and TCE; by Pekka Jääskeläinen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370439
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Fri, 30 Aug 2019 07:27:12 +0000 (07:27 +0000)]
Merging r368164:
------------------------------------------------------------------------
r368164 | s.desmalen | 2019-08-07 14:41:38 +0200 (Wed, 07 Aug 2019) | 13 lines
[AArch64][WinCFI] Do not pair callee-save instructions in LoadStoreOptimizer
Prevent the LoadStoreOptimizer from pairing any load/store instructions with
instructions from the prologue/epilogue if the CFI information has encoded the
operations as separate instructions. This would otherwise lead to a mismatch
of the actual prologue size from the size as recorded in the Windows CFI.
Reviewers: efriedma, mstorsjo, ssijaric
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D65817
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370438
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 13:41:38 +0000 (13:41 +0000)]
ReleaseNotes: cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370357
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 13:23:59 +0000 (13:23 +0000)]
ReleaseNotes: remove in-progress warning and empty sections
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370356
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 13:03:14 +0000 (13:03 +0000)]
ReleaseNotes: matching wide stores (r362472)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370352
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 12:44:53 +0000 (12:44 +0000)]
ReleaseNotes: reduce the indent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370346
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 12:37:46 +0000 (12:37 +0000)]
ReleaseNotes: sinking of instructions without uses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370344
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 12:19:19 +0000 (12:19 +0000)]
ReleaseNotes: omitting range checks for switches with unreachable defaults
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370342
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 10:04:58 +0000 (10:04 +0000)]
ReleaseNotes from Sam Parker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370318
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 29 Aug 2019 08:58:14 +0000 (08:58 +0000)]
Merging r370271:
------------------------------------------------------------------------
r370271 | tstellar | 2019-08-29 00:59:04 +0200 (Thu, 29 Aug 2019) | 6 lines
[LLVM-C] Fix omission of INSTALL_WITH_TOOLCHAIN to llvm_add_library()
Due to a misstake with r365902 that tried to simplify the install with
toolchain logic LLVM-C.dll was no longer being installed.
Patch By: Jakob Bornecrantz
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370306
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 28 Aug 2019 13:58:21 +0000 (13:58 +0000)]
Merging r370204:
------------------------------------------------------------------------
r370204 | hans | 2019-08-28 15:55:10 +0200 (Wed, 28 Aug 2019) | 6 lines
[SelectionDAG] Don't generate libcalls for wide shifts on Windows (PR42711)
Neither libgcc or compiler-rt are usually used on Windows, so these
functions can't be called.
Differential revision: https://reviews.llvm.org/D66880
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370205
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 28 Aug 2019 09:55:07 +0000 (09:55 +0000)]
Merging r369886:
------------------------------------------------------------------------
r369886 | bjope | 2019-08-26 11:29:53 +0200 (Mon, 26 Aug 2019) | 23 lines
[LoopUnroll] Handle certain PHIs in full unrolling properly
Summary:
When reconstructing the CFG of the loop after unrolling,
LoopUnroll could in some cases remove the phi operands of
loop-carried values instead of preserving them, resulting
in undef phi values after loop unrolling.
When doing this reconstruction, avoid removing incoming
phi values for phis in the successor blocks if the successor
is the block we are jumping to anyway.
Patch-by: ebevhan
Reviewers: fhahn, efriedma
Reviewed By: fhahn
Subscribers: bjope, lebedev.ri, zzheng, dmgreen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66334
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370182
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 28 Aug 2019 09:25:24 +0000 (09:25 +0000)]
Merging r370176:
------------------------------------------------------------------------
r370176 | hans | 2019-08-28 11:21:56 +0200 (Wed, 28 Aug 2019) | 15 lines
[LLVM-C] Fix ByVal Attribute crashing
With the introduction of the typed byval attribute change there was no
way that the LLVM-C API could create the correct class Attribute. If a
program that uses the C API creates a ByVal attribute and annotates a
function with that attribute LLVM will crash when it assembles or write
that module containing the function out as bitcode.
This change is a minimal fix to at least allow code to work, this is
because the byval change is on the 9.0 and I don't want to introduce new
LLVM-C API this late in the release cycle.
By Jakob Bornecrantz!
Differential revision: https://reviews.llvm.org/D66144
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370178
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Wed, 28 Aug 2019 08:21:46 +0000 (08:21 +0000)]
ReleaseNotes: ORC note, by Lang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370167
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 27 Aug 2019 16:42:28 +0000 (16:42 +0000)]
ReleaseNotes: Zig
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370077
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 27 Aug 2019 16:26:35 +0000 (16:26 +0000)]
ReleaseNotes: RISCV
By Alex Bradbury!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370076
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 27 Aug 2019 14:36:51 +0000 (14:36 +0000)]
ReleaseNotes: PowerPC
By Lei Huang!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370065
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 27 Aug 2019 14:30:02 +0000 (14:30 +0000)]
Merging r370036:
------------------------------------------------------------------------
r370036 | tnorthover | 2019-08-27 12:21:11 +0200 (Tue, 27 Aug 2019) | 8 lines
AArch64: avoid creating cycle in DAG for post-increment NEON ops.
Inserting a value into Visited has the effect of terminating a search for
predecessors if that node is seen. This is legitimate for the base address, and
acts as a slight performance optimization, but the vector-building node can be
paert of a legitimate cycle so we shouldn't stop searching there.
PR43056.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@370063
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 26 Aug 2019 14:47:37 +0000 (14:47 +0000)]
ReleaseNotes: ARM and AArch64
From Kristof!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369912
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 26 Aug 2019 12:31:37 +0000 (12:31 +0000)]
Merging r366447:
------------------------------------------------------------------------
r366447 | jdevlieghere | 2019-07-18 17:17:42 +0200 (Thu, 18 Jul 2019) | 19 lines
[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
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369899
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Denisov [Fri, 23 Aug 2019 10:01:52 +0000 (10:01 +0000)]
Add Mull project to the release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369744
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 22 Aug 2019 15:52:41 +0000 (15:52 +0000)]
Merging r367580:
------------------------------------------------------------------------
r367580 | atanasyan | 2019-08-01 18:04:29 +0200 (Thu, 01 Aug 2019) | 18 lines
[mips] Fix lowering load/store instruction in PIC case
If an operand of the `lw/sw` instructions is a symbol, these instructions
incorrectly lowered using not-position-independent chain of commands.
For PIC code we should use `lw/addiu` instructions with the `R_MIPS_GOT16`
and `R_MIPS_LO16` relocations respectively. Instead of that LLVM generates
position dependent code with the `R_MIPS_HI16` and `R_MIPS_LO16`
relocations.
This patch provides a fix for the bug by handling PIC case separately in
the `MipsAsmParser::expandMemInst`. The main idea is to generate a chain
of PIC instructions to load a symbol address into a register and then
load the address content.
The fix is not optimal and does not fix all PIC-related problems. This
is a task for subsequent patches.
Differential Revision: https://reviews.llvm.org/D65524
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369663
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 22 Aug 2019 14:28:05 +0000 (14:28 +0000)]
Merging r369426 and r369443:
------------------------------------------------------------------------
r369426 | mstorsjo | 2019-08-20 20:58:05 +0200 (Tue, 20 Aug 2019) | 5 lines
[TargetMachine] Don't try to create COFFSTUB references on windows on non-COFF
This avoids spurious relocation types for windows/elf targets.
Differential Revision: https://reviews.llvm.org/D66401
------------------------------------------------------------------------
------------------------------------------------------------------------
r369443 | mstorsjo | 2019-08-20 22:58:02 +0200 (Tue, 20 Aug 2019) | 11 lines
[test] Fix tests when run on windows after SVN r369426. NFC.
When running tests on windows, invoking "llc -march=<arch>" will
implicitly use windows as the target os, making these tests misbehave
after this change.
Fix the issue by using more specific -mtriple values instead of plain
-march in these tests.
This should hopefully fix buildbot failures like
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/9816.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369654
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Thu, 22 Aug 2019 13:49:53 +0000 (13:49 +0000)]
Merging r369095:
------------------------------------------------------------------------
r369095 | lewis-revill | 2019-08-16 12:28:34 +0200 (Fri, 16 Aug 2019) | 11 lines
[RISCV] Lower inline asm constraint A for RISC-V
This allows arguments with the constraint A to be lowered to input nodes
for RISC-V, which implies a memory address stored in a register.
This patch adds the minimal amount of code required to get operands with
the right constraints to compile.
https://reviews.llvm.org/D54296
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369651
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 20 Aug 2019 10:10:05 +0000 (10:10 +0000)]
Merging r367412 and r367429:
------------------------------------------------------------------------
r367412 | rksimon | 2019-07-31 13:35:01 +0200 (Wed, 31 Jul 2019) | 1 line
[X86][AVX] Add reduced test case for PR42833
------------------------------------------------------------------------
------------------------------------------------------------------------
r367429 | rksimon | 2019-07-31 14:55:39 +0200 (Wed, 31 Jul 2019) | 3 lines
[X86][AVX] Ensure chained subvector insertions are the same size (PR42833)
Before combining insert_subvector(insert_subvector(vec, sub0, c0), sub1, c1) patterns, ensure that the subvectors are all the same type. On AVX512 targets especially we might have a mixture of 128/256 subvector insertions.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369362
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 20 Aug 2019 09:56:16 +0000 (09:56 +0000)]
Merging r369199:
------------------------------------------------------------------------
r369199 | yhs | 2019-08-18 00:12:00 +0200 (Sun, 18 Aug 2019) | 26 lines
[BPF] Fix bpf llvm-objdump issues.
Commit https://reviews.llvm.org/D57939 ("[DWARF] Refactor
RelocVisitor and fix computation of SHT_RELA-typed relocation entries)
made a change for relocation resolution when operating
on an object file.
The change unfortunately broke BPF as given SymbolValue (S) and
Addent (A), previously relocation is resolved to
S + A
and after the change, it is resolved to
S
This patch fixed the issue by resolving relocation correctly.
It looks not all relocation resolution reaches here and I did not
trace down exactly when. But I do find if the object file includes
codes in two different ELF sections than default ".text",
the above bug will be triggered.
This patch included a trivial two function source code to
demonstrate this issue. The relocation for .debug_loc is resolved
incorrectly due to this and llvm-objdump cannot display source
annotated assembly.
Differential Revision: https://reviews.llvm.org/D66372
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369359
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 20 Aug 2019 09:52:26 +0000 (09:52 +0000)]
Merging r369084:
------------------------------------------------------------------------
r369084 | ctopper | 2019-08-16 06:47:44 +0200 (Fri, 16 Aug 2019) | 5 lines
[X86] Manually reimplement getTargetInsertSubreg in X86DAGToDAGISel::matchBitExtract so we can call insertDAGNode on the target constant.
This is needed to maintain the topological sort order.
Fixes PR42992.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369357
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 20 Aug 2019 09:45:09 +0000 (09:45 +0000)]
Merging r369168:
------------------------------------------------------------------------
r369168 | spatel | 2019-08-17 01:10:34 +0200 (Sat, 17 Aug 2019) | 16 lines
[CodeGenPrepare] Fix use-after-free
If OptimizeExtractBits() encountered a shift instruction with no operands at all,
it would erase the instruction, but still return false.
This previously didn’t matter because its caller would always return after
processing the instruction, but https://reviews.llvm.org/D63233 changed the
function’s caller to fall through if it returned false, which would then cause
a use-after-free detectable by ASAN.
This change makes OptimizeExtractBits return true if it removes a shift
instruction with no users, terminating processing of the instruction.
Patch by: @brentdax (Brent Royal-Gordon)
Differential Revision: https://reviews.llvm.org/D66330
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369355
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 20 Aug 2019 09:35:16 +0000 (09:35 +0000)]
Merging r369026:
------------------------------------------------------------------------
r369026 | jmorse | 2019-08-15 19:49:46 +0200 (Thu, 15 Aug 2019) | 17 lines
[DebugInfo] Avoid crash from dropped fragments in LiveDebugValues
This patch avoids a crash caused by DW_OP_LLVM_fragments being dropped
from DIExpressions by LiveDebugValues spill-restore code. The appearance
of a previously unseen fragment configuration confuses LDV, as documented
in PR42773, and reproduced by the test function this patch adds (Crashes
on a x86_64 debug build).
To avoid this, on spill restore, we now use fragment information from the
spilt-location-expression.
In addition, when spilling, we now don't spill any DBG_VALUE with a complex
expression, as it can't be safely restored and will definitely lead to an
incorrect variable location. The discussion of this is in D65368.
Differential Revision: https://reviews.llvm.org/D66284
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369354
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Tue, 20 Aug 2019 07:45:44 +0000 (07:45 +0000)]
Merging r369097:
------------------------------------------------------------------------
r369097 | lewis-revill | 2019-08-16 14:00:56 +0200 (Fri, 16 Aug 2019) | 8 lines
[RISCV] Allow parsing of bare symbols with offsets
This patch allows symbols followed by an expression for an offset to be
parsed as bare symbols.
Differential Revision: https://reviews.llvm.org/D57332
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_90@369338
91177308-0d34-0410-b5e6-
96231b3b80d8