Skip to content

Commit 8e44941

Browse files
committed
merge main into amd-staging
2 parents ccb85fc + b6bbc4b commit 8e44941

File tree

126 files changed

+66666
-6386
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+66666
-6386
lines changed

compiler-rt/lib/nsan/tests/NSanUnitTest.cpp

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ template <typename FT, auto next> void TestFT() {
4343
ASSERT_EQ(GetULPDiff<FT>(-X, -Y), 3);
4444

4545
// Values with larger differences.
46-
static constexpr const __sanitizer::u64 MantissaSize =
47-
__sanitizer::u64{1} << FTInfo<FT>::kMantissaBits;
46+
static constexpr const __uint128_t MantissaSize =
47+
__uint128_t{1} << FTInfo<FT>::kMantissaBits;
4848
ASSERT_EQ(GetULPDiff<FT>(1.0, next(2.0, 1.0)), MantissaSize - 1);
4949
ASSERT_EQ(GetULPDiff<FT>(1.0, 2.0), MantissaSize);
5050
ASSERT_EQ(GetULPDiff<FT>(1.0, next(2.0, 3.0)), MantissaSize + 1);
@@ -57,11 +57,6 @@ TEST(NSanTest, Double) {
5757
TestFT<double, static_cast<double (*)(double, double)>(nextafter)>();
5858
}
5959

60-
TEST(NSanTest, Float128) {
61-
// Very basic tests. FIXME: improve when we have nextafter<__float128>.
62-
ASSERT_EQ(GetULPDiff<__float128>(0.0, 0.0), 0);
63-
ASSERT_EQ(GetULPDiff<__float128>(-0.0, 0.0), 0);
64-
ASSERT_NE(GetULPDiff<__float128>(-0.01, 0.01), kMaxULPDiff);
65-
}
60+
TEST(NSanTest, Float128) { TestFT<__float128, nextafterf128>(); }
6661

6762
} // end namespace __nsan

lldb/test/API/driver/stdio_closed/TestDriverWithClosedSTDIO.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
import os
99
import sys
1010
import socket
11-
import fcntl
11+
12+
if os.name != "nt":
13+
import fcntl
1214

1315
import lldbsuite.test.lldbutil as lldbutil
1416
from lldbsuite.test.lldbtest import *

lldb/test/Shell/SymbolFile/PDB/function-nested-block.test

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
REQUIRES: system-windows, lld
22
RUN: %build --compiler=clang-cl --nodefaultlib --output=%t.exe %S/Inputs/FunctionNestedBlockTest.cpp
3-
RUN: lldb-test symbols -find=function -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-FUNCTION %s
4-
RUN: lldb-test symbols -find=block -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-BLOCK %s
3+
RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols -find=function -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-FUNCTION %s
4+
RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols -find=block -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-BLOCK %s
5+
RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -find=function -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-FUNCTION %s
6+
RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols -find=block -file FunctionNestedBlockTest.cpp -line 4 %t.exe | FileCheck --check-prefix=CHECK-BLOCK %s
57

68
CHECK-FUNCTION: Found 1 functions:
79
CHECK-FUNCTION: name = "main"

llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ class LegalizationArtifactCombiner {
356356
// trunc(ext x) -> x
357357
ArtifactValueFinder Finder(MRI, Builder, LI);
358358
if (Register FoundReg =
359-
Finder.findValueFromDef(DstReg, 0, DstTy.getSizeInBits())) {
359+
Finder.findValueFromDef(DstReg, 0, DstTy.getSizeInBits(), DstTy)) {
360360
LLT FoundRegTy = MRI.getType(FoundReg);
361361
if (DstTy == FoundRegTy) {
362362
LLVM_DEBUG(dbgs() << ".. Combine G_TRUNC(G_[S,Z,ANY]EXT/G_TRUNC...): "
@@ -641,10 +641,11 @@ class LegalizationArtifactCombiner {
641641
Register SrcReg = Concat.getReg(StartSrcIdx);
642642
if (InRegOffset == 0 && Size == SrcSize) {
643643
CurrentBest = SrcReg;
644-
return findValueFromDefImpl(SrcReg, 0, Size);
644+
return findValueFromDefImpl(SrcReg, 0, Size, MRI.getType(SrcReg));
645645
}
646646

647-
return findValueFromDefImpl(SrcReg, InRegOffset, Size);
647+
return findValueFromDefImpl(SrcReg, InRegOffset, Size,
648+
MRI.getType(SrcReg));
648649
}
649650

650651
/// Given an build_vector op \p BV and a start bit and size, try to find
@@ -759,15 +760,17 @@ class LegalizationArtifactCombiner {
759760
if (EndBit <= InsertOffset || InsertedEndBit <= StartBit) {
760761
SrcRegToUse = ContainerSrcReg;
761762
NewStartBit = StartBit;
762-
return findValueFromDefImpl(SrcRegToUse, NewStartBit, Size);
763+
return findValueFromDefImpl(SrcRegToUse, NewStartBit, Size,
764+
MRI.getType(SrcRegToUse));
763765
}
764766
if (InsertOffset <= StartBit && EndBit <= InsertedEndBit) {
765767
SrcRegToUse = InsertedReg;
766768
NewStartBit = StartBit - InsertOffset;
767769
if (NewStartBit == 0 &&
768770
Size == MRI.getType(SrcRegToUse).getSizeInBits())
769771
CurrentBest = SrcRegToUse;
770-
return findValueFromDefImpl(SrcRegToUse, NewStartBit, Size);
772+
return findValueFromDefImpl(SrcRegToUse, NewStartBit, Size,
773+
MRI.getType(SrcRegToUse));
771774
}
772775
// The bit range spans both the inserted and container regions.
773776
return Register();
@@ -799,7 +802,7 @@ class LegalizationArtifactCombiner {
799802

800803
if (StartBit == 0 && SrcType.getSizeInBits() == Size)
801804
CurrentBest = SrcReg;
802-
return findValueFromDefImpl(SrcReg, StartBit, Size);
805+
return findValueFromDefImpl(SrcReg, StartBit, Size, SrcType);
803806
}
804807

805808
/// Given an G_TRUNC op \p MI and a start bit and size, try to find
@@ -819,14 +822,14 @@ class LegalizationArtifactCombiner {
819822
if (!SrcType.isScalar())
820823
return CurrentBest;
821824

822-
return findValueFromDefImpl(SrcReg, StartBit, Size);
825+
return findValueFromDefImpl(SrcReg, StartBit, Size, SrcType);
823826
}
824827

825828
/// Internal implementation for findValueFromDef(). findValueFromDef()
826829
/// initializes some data like the CurrentBest register, which this method
827830
/// and its callees rely upon.
828831
Register findValueFromDefImpl(Register DefReg, unsigned StartBit,
829-
unsigned Size) {
832+
unsigned Size, LLT DstTy) {
830833
std::optional<DefinitionAndSourceRegister> DefSrcReg =
831834
getDefSrcRegIgnoringCopies(DefReg, MRI);
832835
MachineInstr *Def = DefSrcReg->MI;
@@ -847,7 +850,7 @@ class LegalizationArtifactCombiner {
847850
}
848851
Register SrcReg = Def->getOperand(Def->getNumOperands() - 1).getReg();
849852
Register SrcOriginReg =
850-
findValueFromDefImpl(SrcReg, StartBit + DefStartBit, Size);
853+
findValueFromDefImpl(SrcReg, StartBit + DefStartBit, Size, DstTy);
851854
if (SrcOriginReg)
852855
return SrcOriginReg;
853856
// Failed to find a further value. If the StartBit and Size perfectly
@@ -868,6 +871,12 @@ class LegalizationArtifactCombiner {
868871
case TargetOpcode::G_ZEXT:
869872
case TargetOpcode::G_ANYEXT:
870873
return findValueFromExt(*Def, StartBit, Size);
874+
case TargetOpcode::G_IMPLICIT_DEF: {
875+
if (MRI.getType(DefReg) == DstTy)
876+
return DefReg;
877+
MIB.setInstrAndDebugLoc(*Def);
878+
return MIB.buildUndef(DstTy).getReg(0);
879+
}
871880
default:
872881
return CurrentBest;
873882
}
@@ -882,10 +891,10 @@ class LegalizationArtifactCombiner {
882891
/// at position \p StartBit with size \p Size.
883892
/// \returns a register with the requested size, or an empty Register if no
884893
/// better value could be found.
885-
Register findValueFromDef(Register DefReg, unsigned StartBit,
886-
unsigned Size) {
894+
Register findValueFromDef(Register DefReg, unsigned StartBit, unsigned Size,
895+
LLT DstTy) {
887896
CurrentBest = Register();
888-
Register FoundReg = findValueFromDefImpl(DefReg, StartBit, Size);
897+
Register FoundReg = findValueFromDefImpl(DefReg, StartBit, Size, DstTy);
889898
return FoundReg != DefReg ? FoundReg : Register();
890899
}
891900

@@ -904,7 +913,8 @@ class LegalizationArtifactCombiner {
904913
DeadDefs[DefIdx] = true;
905914
continue;
906915
}
907-
Register FoundVal = findValueFromDef(DefReg, 0, DestTy.getSizeInBits());
916+
Register FoundVal =
917+
findValueFromDef(DefReg, 0, DestTy.getSizeInBits(), DestTy);
908918
if (!FoundVal)
909919
continue;
910920
if (MRI.getType(FoundVal) != DestTy)
@@ -923,7 +933,7 @@ class LegalizationArtifactCombiner {
923933

924934
GUnmerge *findUnmergeThatDefinesReg(Register Reg, unsigned Size,
925935
unsigned &DefOperandIdx) {
926-
if (Register Def = findValueFromDefImpl(Reg, 0, Size)) {
936+
if (Register Def = findValueFromDefImpl(Reg, 0, Size, MRI.getType(Reg))) {
927937
if (auto *Unmerge = dyn_cast<GUnmerge>(MRI.getVRegDef(Def))) {
928938
DefOperandIdx =
929939
Unmerge->findRegisterDefOperandIdx(Def, /*TRI=*/nullptr);
@@ -1288,12 +1298,19 @@ class LegalizationArtifactCombiner {
12881298
// for N >= %2.getSizeInBits() / 2
12891299
// %3 = G_EXTRACT %1, (N - %0.getSizeInBits()
12901300

1301+
Register DstReg = MI.getOperand(0).getReg();
12911302
Register SrcReg = lookThroughCopyInstrs(MI.getOperand(1).getReg());
12921303
MachineInstr *MergeI = MRI.getVRegDef(SrcReg);
1304+
if (MergeI && MergeI->getOpcode() == TargetOpcode::G_IMPLICIT_DEF) {
1305+
Builder.setInstrAndDebugLoc(MI);
1306+
Builder.buildUndef(DstReg);
1307+
UpdatedDefs.push_back(DstReg);
1308+
markInstAndDefDead(MI, *MergeI, DeadInsts);
1309+
return true;
1310+
}
12931311
if (!MergeI || !isa<GMergeLikeInstr>(MergeI))
12941312
return false;
12951313

1296-
Register DstReg = MI.getOperand(0).getReg();
12971314
LLT DstTy = MRI.getType(DstReg);
12981315
LLT SrcTy = MRI.getType(SrcReg);
12991316

llvm/include/llvm/IR/IRBuilder.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2191,7 +2191,7 @@ class IRBuilderBase {
21912191
FMFSource);
21922192
}
21932193
Value *CreatePtrToAddr(Value *V, const Twine &Name = "") {
2194-
return CreateCast(Instruction::PtrToInt, V,
2194+
return CreateCast(Instruction::PtrToAddr, V,
21952195
BB->getDataLayout().getAddressType(V->getType()), Name);
21962196
}
21972197
Value *CreatePtrToInt(Value *V, Type *DestTy,

llvm/lib/Target/AArch64/AArch64.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ FunctionPass *createAArch64CleanupLocalDynamicTLSPass();
6060
FunctionPass *createAArch64CollectLOHPass();
6161
FunctionPass *createSMEABIPass();
6262
FunctionPass *createSMEPeepholeOptPass();
63-
FunctionPass *createMachineSMEABIPass();
63+
FunctionPass *createMachineSMEABIPass(CodeGenOptLevel);
6464
ModulePass *createSVEIntrinsicOptsPass();
6565
InstructionSelector *
6666
createAArch64InstructionSelector(const AArch64TargetMachine &,

llvm/lib/Target/AArch64/AArch64.td

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ include "AArch64SchedNeoverseN2.td"
133133
include "AArch64SchedNeoverseN3.td"
134134
include "AArch64SchedNeoverseV1.td"
135135
include "AArch64SchedNeoverseV2.td"
136+
include "AArch64SchedNeoverseV3.td"
137+
include "AArch64SchedNeoverseV3AE.td"
136138
include "AArch64SchedOryon.td"
137139

138140
include "AArch64Processors.td"

llvm/lib/Target/AArch64/AArch64Processors.td

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,11 +1272,11 @@ def : ProcessorModel<"cortex-x2", NeoverseV2Model, ProcessorFeatures.X2,
12721272
[TuneX2]>;
12731273
def : ProcessorModel<"cortex-x3", NeoverseV2Model, ProcessorFeatures.X3,
12741274
[TuneX3]>;
1275-
def : ProcessorModel<"cortex-x4", NeoverseV2Model, ProcessorFeatures.X4,
1275+
def : ProcessorModel<"cortex-x4", NeoverseV3Model, ProcessorFeatures.X4,
12761276
[TuneX4]>;
1277-
def : ProcessorModel<"cortex-x925", NeoverseV2Model, ProcessorFeatures.X925,
1277+
def : ProcessorModel<"cortex-x925", NeoverseV3Model, ProcessorFeatures.X925,
12781278
[TuneX925]>;
1279-
def : ProcessorModel<"gb10", NeoverseV2Model, ProcessorFeatures.GB10,
1279+
def : ProcessorModel<"gb10", NeoverseV3Model, ProcessorFeatures.GB10,
12801280
[TuneX925]>;
12811281
def : ProcessorModel<"grace", NeoverseV2Model, ProcessorFeatures.Grace,
12821282
[TuneNeoverseV2]>;
@@ -1295,9 +1295,9 @@ def : ProcessorModel<"neoverse-v1", NeoverseV1Model,
12951295
ProcessorFeatures.NeoverseV1, [TuneNeoverseV1]>;
12961296
def : ProcessorModel<"neoverse-v2", NeoverseV2Model,
12971297
ProcessorFeatures.NeoverseV2, [TuneNeoverseV2]>;
1298-
def : ProcessorModel<"neoverse-v3", NeoverseV2Model,
1298+
def : ProcessorModel<"neoverse-v3", NeoverseV3Model,
12991299
ProcessorFeatures.NeoverseV3, [TuneNeoverseV3]>;
1300-
def : ProcessorModel<"neoverse-v3ae", NeoverseV2Model,
1300+
def : ProcessorModel<"neoverse-v3ae", NeoverseV3AEModel,
13011301
ProcessorFeatures.NeoverseV3AE, [TuneNeoverseV3AE]>;
13021302
def : ProcessorModel<"exynos-m3", ExynosM3Model, ProcessorFeatures.ExynosM3,
13031303
[TuneExynosM3]>;

0 commit comments

Comments
 (0)