Apply clang fix for crash or assertion failure compiling part of llvmMerge commit 77e8f4eeeeed from llvm git (by David Green): [ARM] Define ComplexPatternFuncMutatesDAG Some of the Arm comple
Apply clang fix for crash or assertion failure compiling part of llvmMerge commit 77e8f4eeeeed from llvm git (by David Green): [ARM] Define ComplexPatternFuncMutatesDAG Some of the Arm complex pattern functions call canExtractShiftFromMul, which can modify the DAG in-place. For this to be valid and handled successfully we need to define ComplexPatternFuncMutatesDAG. Differential Revision: https://reviews.llvm.org/D107476When building parts of llvm targeting armv6 on stable/12, the followingassertion can appear (or if assertions are disabled, clang is likely tocrash):Assertion failed: (NodeToMatch->getOpcode() != ISD::DELETED_NODE && "NodeToMatch was removed partway through selection"), function SelectCodeCommon, file /usr/src/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp, line 3573.PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.Stack dump:0. Program arguments: /usr/obj/usr/src/freebsd12-amd64/tmp/usr/bin/c++ -cc1 -triple armv6kz-unknown-freebsd12.3-gnueabihf -S --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -mrelocation-model static -mconstructor-aliases -target-cpu arm1176jzf-s -target-feature +vfp2 -target-feature +vfp2sp -target-feature -vfp3 -target-feature -vfp3d16 -target-feature -vfp3d16sp -target-feature -vfp3sp -target-feature -fp16 -target-feature -vfp4 -target-feature -vfp4d16 -target-feature -vfp4d16sp -target-feature -vfp4sp -target-feature -fp-armv8 -target-feature -fp-armv8d16 -target-feature -fp-armv8d16sp -target-feature -fp-armv8sp -target-feature -fullfp16 -target-feature +fp64 -target-feature -d32 -target-feature -neon -target-feature -sha2 -target-feature -aes -target-feature -fp16fml -target-feature +strict-align -target-abi aapcs-linux -mfloat-abi hard -fallow-half-arguments-and-returns -ffunction-sections -fdata-sections -O1 -std=c++14 -fdeprecated-macro -fno-rtti -fno-signed-char -faddrsig -fexperimental-new-pass-manager PPCISelLowering-009095.ii1. <eof> parser at end of file2. Code generation3. Running pass 'Function Pass Manager' on module 'PPCISelLowering-009095.cpp'.4. Running pass 'ARM Instruction Selection' on function '@_ZN4llvm17PPCTargetLoweringC2ERKNS_16PPCTargetMachineERKNS_12PPCSubtargetE'This crash or assertion is fixed by the upstream commit.MFC after: 3 days(cherry picked from commit ada8b24d48d93f0b13209b555b64f3d355ef61d9)
show more ...
Merge llvm-project release/13.x llvmorg-13.0.0-rc1-97-g23ba3732246aThis updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-13.0.0-rc1-97-g23ba3732246a.PR: 25820
Merge llvm-project release/13.x llvmorg-13.0.0-rc1-97-g23ba3732246aThis updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-13.0.0-rc1-97-g23ba3732246a.PR: 258209(cherry picked from commit 6e75b2fbf9a03e6876e0a3c089e0b3ad71876125)
Merge llvm-project main llvmorg-13-init-16847-g88e66fa60ae5This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-13-init-16847-g88e66fa60ae5, the last commit bef
Merge llvm-project main llvmorg-13-init-16847-g88e66fa60ae5This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-13-init-16847-g88e66fa60ae5, the last commit beforethe upstream release/13.x branch was created.PR: 258209(cherry picked from commit fe6060f10f634930ff71b7c50291ddc610da2475)
Merge llvm-project 12.0.1 release and follow-up fixesMerge llvm-project main llvmorg-12-init-17869-g8e464dd76befThis updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to l
Merge llvm-project 12.0.1 release and follow-up fixesMerge llvm-project main llvmorg-12-init-17869-g8e464dd76befThis updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-12-init-17869-g8e464dd76bef, the last commit before theupstream release/12.x branch was created.PR: 255570(cherry picked from commit e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)Merge llvm-project 12.0.0 releaseThis updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release.PR: 255570(cherry picked from commit d409305fa3838fb39b38c26fc085fb729b8766d5)Disable strict-fp for powerpcspe, as it does not work properly yetMerge commit 5c18d1136665 from llvm git (by Qiu Chaofan) [SPE] Disable strict-fp for SPE by default As discussed in PR50385, strict-fp on PowerPC SPE has not been handled well. This patch disables it by default for SPE. Reviewed By: nemanjai, vit9696, jhibbits Differential Revision: https://reviews.llvm.org/D103235PR: 255570(cherry picked from commit 715df83abc049b23d9acddc81f2480bd4c056d64)Apply upstream libc++ fix to allow building with devel/xxx-xtoolchain-gccMerge commit 52e9d80d5db2 from llvm git (by Jason Liu): [libc++] add `inline` for __open's definition in ifstream and ofstream Summary: When building with gcc on AIX, it seems that gcc does not like the `always_inline` without the `inline` keyword. So adding the inline keywords in for __open in ifstream and ofstream. That will also make it consistent with __open in basic_filebuf (it seems we added `inline` there before for gcc build as well). Differential Revision: https://reviews.llvm.org/D99422PR: 255570(cherry picked from commit d099db25464b826c5724cf2fb5b22292bbe15f6e)Undefine HAVE_(DE)REGISTER_FRAME in llvm's config.h on armOtherwise, the lli tool (enable by WITH_CLANG_EXTRAS) won't link on arm,stating that __register_frame is undefined. This function is normallyprovided by libunwind, but explicitly not for the ARM Exception ABI.Reported by: ohPR: 255570(cherry picked from commit f336b45e943c7f9a90ffcea1a6c4c7039e54c73c)Merge llvm-project 12.0.1 rc2This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-12.0.1-rc2-0-ge7dac564cd0e, a.k.a. 12.0.1 rc2.PR: 255570(cherry picked from commit 23408297fbf3089f0388a8873b02fa75ab3f5bb9)Revert libunwind change to fix backtrace segfault on aarch64Revert commit 22b615a96593 from llvm git (by Daniel Kiss): [libunwind] Support for leaf function unwinding. Unwinding leaf function is useful in cases when the backtrace finds a leaf function for example when it caused a signal. This patch also add the support for the DW_CFA_undefined because it marks the end of the frames. Ryan Prichard provided code for the tests. Reviewed By: #libunwind, mstorsjo Differential Revision: https://reviews.llvm.org/D83573 Reland with limit the test to the x86_64-linux target.Bisection has shown that this particular upstream commit causes programsusing backtrace(3) on aarch64 to segfault. This affects the lang/rustport, for instance. Until we can upstream to fix this problem, revertthe commit for now.Reported by: mikaelPR: 256864(cherry picked from commit 5866c369e4fd917c0d456f0f10b92ee354b82279)Merge llvm-project 12.0.1 releaseThis updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb andopenmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release.PR: 255570(cherry picked from commit 4652422eb477731f284b1345afeefef7f269da50)compilert-rt: build out-of-line LSE atomics helpers for aarch64Both clang >= 12 and gcc >= 10.1 now default to -moutline-atomics foraarch64. This requires a bunch of helper functions in libcompiler_rt.a,to avoid link errors like "undefined symbol: __aarch64_ldadd8_acq_rel".(Note: of course you can use -mno-outline-atomics as a workaround too,but this would negate the potential performance benefit of the fasterLSE instructions.)Bump __FreeBSD_version so ports maintainers can easily detect this.PR: 257392(cherry picked from commit cc55ee8009a550810d38777fd6ace9abf3a2f6b4)
Disable llvm generating 128-bit multiply libcalls on 32-bit ARMMerge commit 789708617d20 from llvm git (Koutheir Attouchi): Do not generate calls to the 128-bit function __multi3() on 32-bit ARM
Disable llvm generating 128-bit multiply libcalls on 32-bit ARMMerge commit 789708617d20 from llvm git (Koutheir Attouchi): Do not generate calls to the 128-bit function __multi3() on 32-bit ARM Re-applying this patch after bots failures. Should be fine now. The function __multi3() is undefined on 32-bit ARM, so a call to it should never be emitted. Instead, plain instructions need to be generated to perform 128-bit multiplications. Differential Revision: https://reviews.llvm.org/D103906Reported by: mmel(cherry picked from commit 014a40f8f643a5dad6a6ba5c4bf6ea5d4f445fe6)
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmpmaster 2e10b7a39b9, the last commit before the llvmorg-12-init tag, fromwhich release/11.x was branched.Note that for now, I
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmpmaster 2e10b7a39b9, the last commit before the llvmorg-12-init tag, fromwhich release/11.x was branched.Note that for now, I rolled back all our local changes to make mergingeasier, and I will reapply the still-relevant ones after updating to11.0.0-rc1.
In r358396 I merged llvm upstream commit 2e24219d3, which fixed "error:unsupported relocation on symbol" when assembling arm 'adr' pseudoinstructions. However, the upstream commit did not take big-
In r358396 I merged llvm upstream commit 2e24219d3, which fixed "error:unsupported relocation on symbol" when assembling arm 'adr' pseudoinstructions. However, the upstream commit did not take big-endian arminto account.Applying the same changes to the big-endian handling is straightforward,thanks to Andrew Turner and Peter Smith for the hint. This will also besubmitted upstream.MFC after: immediately, since this fix is meant for stable/11
Tentatively apply https://reviews.llvm.org/D78877 (by Dave Green): [ARM] Only produce qadd8b under hasV6Ops When compiling for a arm5te cpu from clang, the +dsp attribute is set. This meant w
Tentatively apply https://reviews.llvm.org/D78877 (by Dave Green): [ARM] Only produce qadd8b under hasV6Ops When compiling for a arm5te cpu from clang, the +dsp attribute is set. This meant we could try and generate qadd8 instructions where we would end up having no pattern. I've changed the condition here to be hasV6Ops && hasDSP, which is what other parts of ARMISelLowering seem to use for similar instructions. Fixed PR45677.This fixes "fatal error: error in backend: Cannot select: t37: i32 =ARMISD::QADD8b t43, t44" when compiling sys/dev/sound/pcm/feeder_mixer.cfor armv5. For some reason we do not encounter this on head, but thiserror popped up while building universes for stable/12.MFC after: 3 days
Merge ^/vendor/llvm-project/release-10.x up to its last change (upstreamcommit llvmorg-10.0.0-rc2-70-ge5cb70267e7), and bump versions.
Merge commit 2e24219d3 from llvm git (by Hans Wennborg): [MC][ARM] Resolve some pcrel fixups at assembly time (PR44929) MC currently does not emit these relocation types, and lld does not han
Merge commit 2e24219d3 from llvm git (by Hans Wennborg): [MC][ARM] Resolve some pcrel fixups at assembly time (PR44929) MC currently does not emit these relocation types, and lld does not handle them. Add FKF_Constant as a work-around of some ARM code after D72197. Eventually we probably should implement these relocation types. By Fangrui Song! Differential revision: https://reviews.llvm.org/D72892This re-enables using the arm 'adr' pseudo instruction on global symbolsagain. It was broken as a side-effect of upstream commit 2bfee35cb,which lead to "error: unsupported relocation on symbol" when assemblingsuch constructs, which are used in e.g. sys/arm/arm/locore-v[46].S.PR: 244251
Merge ^/vendor/llvm-project/release-10.x up to its last change (upstreamcommit llvmorg-10.0.0-rc2-0-g90c78073f73), bump versions, and updatebuild glue.
Merge ^/vendor/lvm-project/release-10.x up to its last change (upstreamcommit llvmorg-10-init-17538-gd11abddb32f).
Merge ^/vendor/lvm-project/master up to its last change (upstream commite26a78e70), and resolve conflicts.
Merge ^/vendor/llvm/dist up to its last change, and resolve conflicts.
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp9.0.1 final release c1a0a213378a458fbea1a5c77b315c7dce08fd05.Release notes for llvm, clang, lld and libc++ 9.0.1 will become
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp9.0.1 final release c1a0a213378a458fbea1a5c77b315c7dce08fd05.Release notes for llvm, clang, lld and libc++ 9.0.1 will becomeavailable here:https://releases.llvm.org/9.0.1/docs/ReleaseNotes.htmlhttps://releases.llvm.org/9.0.1/tools/clang/docs/ReleaseNotes.htmlhttps://releases.llvm.org/9.0.1/tools/lld/docs/ReleaseNotes.htmlhttps://releases.llvm.org/9.0.1/projects/libcxx/docs/ReleaseNotes.htmlPR: 240629MFC after: 1 month
Move all sources from the llvm project into contrib/llvm-project.This uses the new layout of the upstream repository, which was recentlymigrated to GitHub, and converted into a "monorepo". That i
Move all sources from the llvm project into contrib/llvm-project.This uses the new layout of the upstream repository, which was recentlymigrated to GitHub, and converted into a "monorepo". That is, most ofthe earlier separate sub-projects with their own branches and tags wereconsolidated into one top-level directory, and are now branched andtagged together.Updating the vendor area to match this layout is next.