[llvm][object] handle GOFF in createObjectFile (#206636)
`ObjectFile::createObjectFile` doesn't handle GOFF and returns an error,
even though the requisite GOFF support is present (i.e.
`createGOFFObjectFile`). This change corrects this, and adds a simple
test for `createObjectFile` on a GOFF type object.
[LV] Implement VPBuilder::createPtrAdd with createNoWrapPtrAdd (NFC) (#207467)
createPtrAdd is exactly createNoWrapPtrAdd with GEPNoWrapFlags::none().
Forward to it instead of duplicating the VPInstruction construction.
[Clang] Add flags and lang option for C++2d (#203992)
This adds diagnostic groups, command-line options, a language option,
and various other things required to support `-std=c++2d`. I haven’t
touched e.g. clang-tidy or clang-format, as I’m not really familiar w/
either. This is only meant to add the most necessary parts to support
C++29 mode.
I grepped for `CPlusPlus26`/`C++26`/`C++2c` and updated all places I
could find where we need to handle every language mode in some way or
another.
This patch is roughly based on b763d6a4ed4650c74c6846d743156468563b0e31.
[VPlan] Simplify VPHierarchicalChildrenIterator::operator*. NFC (#207464)
This is like a pointer-valued iterator, whose constness should not
qualify the pointee ( `vector<T*>::const_iterator` yields `T*`, not
`const T*`), so collapse the two overloads into a single `BlockPtrTy
operator*() const`.
[LAA] Use (Diff - 1) <u (Threshold - 1) for diff checks. (#188462)
Update diff checks to use (Diff - 1) <u (Threshold - 1), equivalent to 0
< Diff <u Threshold, to exclude Diff == 0, equal pointers are a safe
loop-independent dependence.
Alive2 proofs https://alive2.llvm.org/ce/z/_ss9QG
* (Diff - 1) <u (Threshold - 1) => 0 < Diff <u Threshold
* Old and new check are equivalent, if diff > 0:
On some platforms, this adds an extra instruction to compute the diff
check, but allows to handle the case where both pointers are equal.
PR: https://github.com/llvm/llvm-project/pull/188462
[SystemZ][z/OS] Show instruction encoding in HLASM output
This change adds the support to show instruction encoding as a comment
when emitting HLASM text. With this, the last 2 LIT tests migrate to
HLASM syntax.
[MC] Move addEncodingComment() into new base class MCAsmBaseStreamer
This is in preparation to use this functionality in the
SystemZHLASMAsmStreamer. No functional change.
[PowerPC] Custom Lower ABDU using branchless carry (#182704)
In normal abs, we already do this but with asr 31 instead of sbc, which
we can get directly from the subtraction.
[z/OS][Clang] Reland Add wrapper headers to avoid macro name conflicts (#204472) (#207420)
Some z/OS system headers define macros (e.g. __time, __math) that
conflict with user identifiers and break compilation. These wrappers
include the system headers and neutralize the problematic macros.
Reland of 04079deb547c91eff6c6e2b820dbe6937c72fcf5.
Add systemz-registered-target requirement to zos-guard.c.
[MC] Move addEncodingComment() into new base class MCAsmBaseStreamer
This is in preparation to use this functionality in the
SystemZHLASMAsmStreamer. No functional change.
[libc++] Fix SPEC benchmarks not producing a .lnt result file (#207450)
The refactoring in 471e8f7f94e7 removed the output of a .lnt file, which
is necessary for interoperation with consolidate-benchmarks.
[clang] accept member specializations declared in class scope
Explicit specializations are not restricted to namespace scope since CWG727 was
accepted as a DR.
Also fixes a crash upon error recovery in this case which was a recent
unreleased regression.
Fixes #206866
[VPlan] Add VPBuilder::createVScale (NFC) (#207401)
Add a VPBuilder::createVScale helper (mirroring IRBuilder::CreateVScale)
and use it at the existing sites that create a VScale VPInstruction.