Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LLVM and SPIRV-LLVM-Translator pulldown (WW26 2024) #14327

Merged
merged 3,091 commits into from
Jul 5, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
3091 commits
Select commit Hold shift + click to select a range
43d207a
[RISCV][GISEL] IRTranslator for Scalable Vector Store (#86699)
jiahanxie353 Jun 24, 2024
431213c
[mlir][linalg] Implement patterns for reducing rank of named linalg c…
srcarroll Jun 24, 2024
962d7ac
Add flag to opt out of wasm-opt (#95208)
mh4ck-Thales Jun 24, 2024
0ab8198
[llvm-readobj][ELF] Implement JSON output for --dynamic-table (#95976)
feg208 Jun 24, 2024
58cb0e6
[.github] Add myself as a reviewer for DWARFLinker & friends (#96531)
JDevlieghere Jun 24, 2024
0534953
[bazel] Port #95312 (#96533)
keith Jun 24, 2024
33a9c57
[lldb] Fix failing TestFind(Ranges)InMemory.py tests. (#96511)
mbucko Jun 24, 2024
2f69e9a
[COFF,test] Improve fission.ll
MaskRay Jun 24, 2024
b7b337f
[mlir] Use llvm::unique (NFC) (#96415)
kazutakahirata Jun 24, 2024
d6a3bd1
Update Clang extension criteria (#96532)
AaronBallman Jun 24, 2024
2ae0905
[C23] Claim we do not conform to N2819
AaronBallman Jun 24, 2024
62baf21
[AArch64] Check for streaming mode in HasSME* features. (#96302)
sdesmalen-arm Jun 24, 2024
09c0337
[Clang][SveEmitter] Split up TargetGuard into SVE and SME component. …
sdesmalen-arm Jun 24, 2024
f2d3d82
[mlir][linalg][Transform] Fix use-after-free in `SplitOp::apply` (#96…
matthias-springer Jun 24, 2024
d30b082
[OpenMP] Add num_threads clause list format and strict modifier suppo…
TerryLWilmarth Jun 24, 2024
0555afd
[NFC][MLInliner] Rename LastSCC -> CurSCC (#96546)
aeubanks Jun 24, 2024
b1a93db
[bazel] Export distributable lldb files (#96549)
keith Jun 24, 2024
b097018
[clang][OpenMP] Fix teams nesting of region check (#94806)
mikerice1969 Jun 24, 2024
313b1a8
[mlgo] Support composite AOT-ed models (#96276)
mtrofin Jun 24, 2024
5413a2b
[clang][OpenMP] Fix error handling of the adjust_args clause (#94696)
mikerice1969 Jun 24, 2024
3aef525
[AMDGPU] Fix negative immediate offset for unbuffered smem loads (#89…
vangthao95 Jun 24, 2024
d2864d1
[libc++] Build with -fsized-deallocation (#96217)
ldionne Jun 24, 2024
bea7f3d
[libc][startup] create header for ElfW and use in startup (#96510)
nickdesaulniers Jun 24, 2024
dd8d978
[bazel] Switch mach_gen to apple_genrule (#96551)
keith Jun 24, 2024
a030c8b
[bazel] Add support for building lldb-dap (#96556)
keith Jun 24, 2024
687d6fb
[NVPTX] Basic support for "grid_constant" (#96125)
akshayrdeodhar Jun 24, 2024
5ae5069
LAA: strip unnecessary getUniqueCastUse (#92119)
artagnon Jun 24, 2024
16903ac
[libc][math] Implement double precision sin correctly rounded to all …
lntue Jun 24, 2024
a32b719
Revert commits that add `TestFind(Ranges)InMemory.py` (#96560)
chelcassanova Jun 24, 2024
75ac887
[BOLT][NFC] Sync CommandLineArgumentReference with options (#96563)
shawbyoung Jun 24, 2024
a3a44bf
[llvm][ProfDataUtils] Provide getNumBranchWeights API (#90146)
ilovepi Jun 24, 2024
5e097c7
[BOLT] Hash-based function matching (#95821)
shawbyoung Jun 24, 2024
b3c668b
[clang][docs] '#pragma clang section' is supported on Mach-O. NFC
jroelofs Jun 24, 2024
32e4906
Revert "[BOLT] Hash-based function matching" (#96568)
shawbyoung Jun 24, 2024
0d4da0d
[lldb][API] Add Find(Ranges)InMemory() to Process SB API (#96569)
mbucko Jun 24, 2024
dc27ff1
[libc] Disable freelist test on NVPTX temporarily
jhuber6 Jun 24, 2024
361543e
[LLDB][Minidump] Change expected directories to the correct type; siz…
Jlalond Jun 24, 2024
a2d340b
Revert "[Flang][Driver] Add -print-resource-dir command line flag to …
DavidTruby Jun 24, 2024
954b692
[flang] Allow derf as alternate spelling for erf (#95784)
DavidTruby Jun 25, 2024
8ad32ce
[X86] Add sub-feature zu (zero upper) for APX
KanRobert Jun 25, 2024
7ea63b9
[LoongArch][test] Remove the FIXME in psabi-restricted-scheduling.ll …
SixWeining Jun 25, 2024
b0e9b00
[NVPTX] Make nvptx mma instructions convergent. (#96521)
weiweichen Jun 25, 2024
4e0a0ea
[X86] Fix test Clang::CodeGen/builtin-cpu-supports.c failure
KanRobert Jun 25, 2024
dd0b7cb
Merge from 'main' to 'sycl-web' (125 commits)
tianqingw Jun 25, 2024
164e362
Merge from 'sycl' to 'sycl-web' (7 commits)
Jun 25, 2024
9267f8f
[clang-format] Add option to remove leading blank lines (#91221)
sstwcw May 6, 2024
437366b
Adjust MSVC version range for ARM64 build performance regression (#90…
lxbndr Jun 25, 2024
c393121
[libc++] Remove Windows-specific configuration from libcxx/test/CMake…
ldionne Jun 25, 2024
8348d72
[clang-tidy] Fix assert in performance-unnecessary-copy-init. (#96506)
legrosbuffle Jun 25, 2024
1d9029f
Merge from 'main' to 'sycl-web' (17 commits)
tianqingw Jun 25, 2024
bd488c1
[RISCV] Use StringRef::starts_with(char) instead of starts_with(Strin…
topperc Jun 25, 2024
8599629
[CodeGen][NewPM] Port machine post dominator tree analysis to new pas…
paperchalice Jun 25, 2024
62d44fb
[MC] Remove setUseAssemblerInfoForParsing(false) workarounds
MaskRay Jun 25, 2024
f1e0657
[mlir][Transforms] Dialect conversion: Simplify handling of dropped a…
matthias-springer Jun 25, 2024
41f8e6d
[RISCV][GISel] Fix test case order in fp-arith.mir. NFC
topperc Jun 25, 2024
4c91b49
[clangd] Fix the build broken (NFC)
DamonFool Jun 25, 2024
efa8463
[VectorCombine] Add free concats to shuffleToIdentity. (#94954)
davemgreen Jun 25, 2024
f019581
[SmallPtrSet] Add remove_if() method (#96468)
nikic Jun 25, 2024
fa20184
[C++20] [Modules] [Serialization] Don't reuse type ID and identifier …
ChuanqiXu9 Jun 25, 2024
8153773
[clang][Interp] Fix returning primitive non-blockpointers
tbaederr Jun 25, 2024
174f80c
[DomTree] Avoid duplicate hash lookups in runDFS() (NFCI) (#96460)
nikic Jun 25, 2024
01fb529
Fix bazel after 18cf1cd92b554ba0b870c6a2223ea4d0d3c6dd21
ftynse Jun 25, 2024
7f1a744
[TailDup][MachineSSAUpdater] Let RewriteUse insert a COPY when needed…
bjope Jun 25, 2024
11e12bd
[NFC] [GWP-ASan] Rename Check() to check() (#96605)
hctim Jun 25, 2024
d782119
[Analysis] Use SmallPtrSet::remove_if (NFC)
nikic Jun 25, 2024
2d84e0f
[RISCV] Add scheduling model for Syntacore SCR3 (#95427)
asi-sc Jun 25, 2024
8395f9c
[lldb/DWARF] Remove parsing recursion when searching for definition D…
labath Jun 25, 2024
f6aa508
[SPIR-V]: Fix creation of constants of array types in SPIRV Backend (…
VyacheslavLevytskyy Jun 25, 2024
0bd9c49
[AArch64][SVE] optimisation for SVE load intrinsics with no active la…
Lukacma Jun 25, 2024
919b1ec
[flang][debug] Support pointer type. (#96153)
abidh Jun 25, 2024
5feb32b
[AMDGPU] Extend readlane, writelane and readfirstlane intrinsic lower…
vikramRH Jun 25, 2024
f9795f3
[GlobalISel] Add build methods for FP environment intrinsics (#96607)
spavloff Jun 25, 2024
16d02cd
[libc++] Use __is_nothrow_destructible (#95766)
philnik777 Jun 25, 2024
29f4a05
[SetOperations] clang-format header (NFC)
nikic Jun 25, 2024
f09b024
[clang] Remove a stale FIXME
hokein Jun 25, 2024
9d45077
[VPlan] Iterate over VPlans to get VFs to compute cost for (NFCI).
fhahn Jun 25, 2024
eeb0884
[LoopUnroll] Use poison instead of undef for preheader value
nikic Jun 25, 2024
a2e9157
[LV] Make create-induction-resume.ll more robust by adding store.
fhahn Jun 25, 2024
37c736e
[LoopUnroll] Use poison instead of undef for another preheader value
nikic Jun 25, 2024
cc8fdd6
[Xtensa] Lower GlobalAddress/BlockAddress/JumpTable (#95256)
andreisfr Jun 25, 2024
4acc8ee
[SCCP] Generate test checks (NFC)
nikic Jun 25, 2024
16bb8c1
[SCCP] Use poison instead of undef when zapping returns
nikic Jun 25, 2024
35eef9f
[Reassociate] Use poison instead of undef for dummy operands (NFCI)
nikic Jun 25, 2024
65f9601
[NFC][lld][ELF] Remove unused `sec` param of `ObjFile<ELFT>::getReloc…
kovdan01 Jun 25, 2024
bfad875
[LoongArch] Ensure PseudoLA* can be hoisted (#94723)
heiher Jun 25, 2024
9952e00
[VPlanTest] Use poison instead of undef for dummy values (NFC)
nikic Jun 25, 2024
68efc50
[VectorBuilderTest] Use poison instead of undef for dummy values (NFC)
nikic Jun 25, 2024
9acb533
[clang][Driver] Add HIPAMD Driver support for AMDGCN flavoured SPIR-V…
AlexVlx Jun 25, 2024
a46a2c2
[X86] Lower vXi8 multiplies using PMADDUBSW on SSSE3+ targets (#95690)
RKSimon Jun 25, 2024
5ed5d72
[mlir][ArmSME] Lower multi-tile stores to a single loop (#96187)
MacDue Jun 25, 2024
6c9916d
[libc] Configure CMAKE_REQUIRED_FLAGS so the GPU can use flag checks …
jhuber6 Jun 25, 2024
0f111ba
LoopInfo: introduce Loop::getLocStr; unify debug output (#93051)
artagnon Jun 25, 2024
8263bec
[SLP] Use poison instead of undef in reorderScalars() (#96619)
nikic Jun 25, 2024
952bdaa
[flang][OpenMP] Fix copyprivate allocatable/pointer lowering (#95975)
luporl Jun 25, 2024
c436649
[AArch64] Remove all instances of the 'hasSVEorSME' interfaces. (#96543)
sdesmalen-arm Jun 25, 2024
c5aa983
[InstSimplify] Fold all poison phi to poison instead of undef
nikic Jun 25, 2024
4780dc3
[InstCombine] Add poison variant to phi test (NFC)
nikic Jun 25, 2024
abc8c4b
[LoopVectorize] Generate test checks (NFC)
nikic Jun 25, 2024
edbe698
[libc][math][c23] Add f16divf C23 math function (#96131)
overmighty Jun 25, 2024
eabe091
[bazel] Add missing dependency for 5ed5d723db58f7556782427444642d0571…
d0k Jun 25, 2024
70cfece
Revert "[clang-format] Add option to remove leading blank lines (#912…
sstwcw Jun 25, 2024
c69ea04
Revert "[clangd] Fix the build broken (NFC)"
DamonFool Jun 25, 2024
fd62906
[libc++] Fix incorrect overflow checking in std::lcm (#96310)
ldionne Jun 25, 2024
44c9a26
[Mem2Reg] Add tests with !noundef (NFC)
nikic Jun 25, 2024
c9f083a
[Clang][AMDGPU] Add builtins for instrinsic `llvm.amdgcn.raw.ptr.buff…
shiltian Jun 25, 2024
1462605
[Analysis] Use range-based for loops (NFC) (#96587)
kazutakahirata Jun 25, 2024
2dd4167
[LoopVectorize][AArch64] Add limited support for scalable vectorisati…
david-arm Jun 25, 2024
54b61ad
[NFC][clang] Replace unreachable code in literal processing with asse…
mikerice1969 Jun 25, 2024
eb12d9b
[libc++] Remove the allocator<const T> extension (#96319)
ldionne Jun 25, 2024
d6c7410
AMDGPU: Remove an outdated TODO (#96446)
nhaehnle Jun 25, 2024
7e9b49f
AMDGPU: Add plumbing for private segment size argument (#96445)
nhaehnle Jun 25, 2024
13ed349
[AMDGPU][NFC] Rename AMDGPUVariadicMCExpr to AMDGPUMCExpr. (#96618)
kosarev Jun 25, 2024
fb463e1
[C23] Remove WG14 N2379 from the C status page
AaronBallman Jun 25, 2024
c6973ad
[Mem2Reg] Generate non-terminator unreachable for !noundef undef (#96…
nikic Jun 25, 2024
de528ff
[Flang] Extracting internal constants from scalar literals (#73829)
Leporacanthicus Jun 25, 2024
2cf1975
[MLIR][OpenMP]Add order-modifier support to Order clause (#93805)
harishch4 Jun 25, 2024
a404529
[SPIRV] Add definitions for NonSemantic debug info (#95530)
bwlodarcz Jun 25, 2024
ec9ce89
[LoopVectorize] Fix build issue caused by #95920 (#96647)
david-arm Jun 25, 2024
2274c66
[libc++] Use _If for conditional_t (#96193)
philnik777 Jun 25, 2024
ed1273d
[libc++] change the visibility of libc++ header to public in libcxx m…
RichardLuo0 Jun 25, 2024
bb5ab1f
[𝘀𝗽𝗿] initial version
shawbyoung Jun 24, 2024
020f69c
Added opts::Lite to RewriteInstance
shawbyoung Jun 25, 2024
c097e64
Revert "Added opts::Lite to RewriteInstance"
shawbyoung Jun 25, 2024
0e11a7e
[EarlyCSE] Add test with noundef load of undef (NFC)
nikic Jun 25, 2024
79e8a59
[libc++] Move allocator assertion into allocator_traits (#94750)
huixie90 Jun 25, 2024
7f10ed6
[tsan] Fix dead lock when starting StackDepot thread (#96456)
vitalybuka Jun 25, 2024
dddef9d
[RISCV] Add FPR16 regbank and start legalizing f16 operations for Zfh…
topperc Jun 25, 2024
8a46bbb
[Clang] Remove preprocessor guards and global feature checks for NEON…
Lukacma Jun 25, 2024
8c11d37
[libc++] P3029R1: Better `mdspan`'s CTAD - `std::extents` (#89015)
Jun 25, 2024
902952a
Revert "[𝘀𝗽𝗿] initial version"
shawbyoung Jun 25, 2024
731db06
[libc++] Get the GCC build mostly clean of warnings (#96604)
philnik777 Jun 25, 2024
2604830
Add support for __builtin_verbose_trap (#79230)
ahatanak Jun 25, 2024
bb075ee
[libc++] LWG3382: NTTP for `pair` and `array` (#85811)
JMazurkiewicz Jun 25, 2024
889f3c5
AMDGPU: Handle legal v2bf16 atomicrmw fadd for gfx12 (#95930)
arsenm Jun 25, 2024
b7768c5
[clang][Interp][NFC] Use delegate() to delegate to only initlist item
tbaederr Jun 25, 2024
e951bd0
Reapply PR/87550 (again) (#95571)
oontvoo Jun 25, 2024
dca49d7
[libc][arm32] define argc type and stack alignment (#96367)
nickdesaulniers Jun 25, 2024
fb07afe
[BPF] Avoid potential long compilation time without -g (#96575)
yonghong-song Jun 25, 2024
ac1e22f
[mlir][vector] Generalize folding of ext-contractionOp to other types…
raikonenfnu Jun 25, 2024
580343d
[clang][Interp][NFC] Destroy InitMap when moving contents to DeadBlock
tbaederr Jun 25, 2024
c9529f7
[mlir] Drop outermost dims in slice rank reduction inference (#95020)
Max191 Jun 25, 2024
05ca207
[C23] Update status page regarding FLT_MAX_EXP
AaronBallman Jun 25, 2024
d7dd778
[clang-doc] update install path to share/clang-doc instead of share/c…
PeterChou1 Jun 25, 2024
dbd5c78
[clang-doc] Remove stdexecpt from clang-doc test (#96552)
PeterChou1 Jun 25, 2024
f0f774e
[sanitizer] Rename DEFINE_REAL_PTHREAD_FUNCTIONS (#96527)
vitalybuka Jun 25, 2024
de7c139
[SLP] NFC. Refactor and add getAltInstrMask help function. (#94709)
HanKuanChen Jun 25, 2024
aaf50bf
[AMDGPU] Disallow negative s_load offsets in isLegalAddressingMode (#…
jayfoad Jun 25, 2024
5e2beed
[C23] Move WG14 N2931 to the TS18661 section
AaronBallman Jun 25, 2024
0b049ce
[tsan] Test `__tsan_test_only_on_fork` only on Mac (#96597)
vitalybuka Jun 25, 2024
4c87212
[libc][thumb] support syscalls from thumb mode (#96558)
nickdesaulniers Jun 25, 2024
cd2bac8
[nfc][tsan] Better name for locking functions (#96598)
vitalybuka Jun 25, 2024
0258a60
[nfc][tsan] Clang format includes (#96599)
vitalybuka Jun 25, 2024
5c9513a
[NVPTX] cap param alignment at 128 (max supported by ptx) (#96117)
AlexMaclean Jun 25, 2024
70fb1e3
Reland [mlir][Target] Improve ROCDL gpu serialization API (#96198)
fabianmcg Jun 25, 2024
c0dc134
[tsan] Lock/Unlock allocator and stacks on fork (#96600)
vitalybuka Jun 25, 2024
39a0aa5
[SelectionDAG] Lower llvm.ldexp.f32 to ldexp() on Windows. (#95301)
efriedma-quic Jun 25, 2024
928b780
[WebAssembly] Implement trunc_sat and convert instructions for f16x8.…
brendandahl Jun 25, 2024
a790279
[flang] Add basic -mtune support (#95043)
AlexisPerry Jun 25, 2024
a086933
[C11] Remove WG14 N1537 from the status page
AaronBallman Jun 25, 2024
21ab32e
[lldb][LibCxx] Move incorrect nullptr check (#96635)
Michael137 Jun 25, 2024
b9353f7
[LinkerWrapper][NFC] Simplify StringErrors (#96650)
jhuber6 Jun 25, 2024
fef144c
Revert "[llvm] Use llvm::sort (NFC) (#96434)"
kazutakahirata Jun 25, 2024
aec735c
[Flang][OpenMP][MLIR] Fix common block mapping for regular and declar…
agozillon Jun 25, 2024
b003c60
[mlir][arith] Match folding of `arith.remf` to `llvm.frem` semantics …
ubfx Jun 25, 2024
a255ece
XFAIL llvm/test/DebugInfo/attr-btf_type_tag.ll on AIX (#96677)
nivethakuruparan Jun 25, 2024
ec2fb59
[BOLT][docs] Add Linux kernel optimization guide (#96669)
maksfb Jun 25, 2024
8dd9494
Revert "[flang] Add basic -mtune support" (#96678)
tarunprabhu Jun 25, 2024
7e77353
[clang][test] Avoid writing to a potentially write-protected dir (#96…
karka228 Jun 25, 2024
3f7b832
Merge from 'main' to 'sycl-web' (15 commits)
calebwat Jun 25, 2024
a55dc1d
[SLP][NFC]Add a test with the incorrect casting of the sext/zext alte…
alexey-bataev Jun 25, 2024
600ff28
[mlgo] add 2 new features whether caller/callee is `available_externa…
mtrofin Jun 25, 2024
bd5b775
__asan_register_elf_globals: properly check the "no instrumented glob…
MaskRay Jun 25, 2024
80114a7
[ScheduleDAG] Remove obsolete VReg2SUnitMap. NFC (#96559)
bjope Jun 25, 2024
699cd9a
[llvm-dwp] Fix merging of debug_str_offsets with multiple contributio…
molar Jun 25, 2024
228c2e1
[SLP]Fix incorrect promotion of nodes before shuffling.
alexey-bataev Jun 25, 2024
3c24eb3
[LLVM][MIR] Support parsing bfloat immediates in MIR parser (#96010)
stephenchouca Jun 25, 2024
ef05b03
[libc][math][c23] Add MPFR exhaustive test for fmodf16 (#94656)
overmighty Jun 25, 2024
88f80ae
[libc][math] Implement double precision cos correctly rounded to all …
lntue Jun 25, 2024
04c2785
[MC,COFF] Change how we handle section symbols
MaskRay Jun 25, 2024
d264514
Enforce parameter order in f16 call, flipped call unit tests (#96258)
akshayrdeodhar Jun 25, 2024
0280f97
[SLP]Fix PR95925: extract vectorized index of the potential buildvect…
alexey-bataev Jun 25, 2024
dff6871
[RISCV][GISel] Support G_FCONSTANT for Zfh.
topperc Jun 25, 2024
7e59b20
[SCEV] Support addrec in right hand side in howManyLessThans (#92560)
mrdaybird Jun 25, 2024
edf5782
[TableGen] Check for duplicate register tuple definitions. (#95725)
nvjle Jun 25, 2024
8bba070
AMDGPU: Expand testing of atomicrmw fmin/fmax lowering
arsenm Jun 25, 2024
4f80f36
AMDGPU: Add new metadata and expand atomicrmw fadd expansion tests
arsenm Jun 25, 2024
e214ed9
[libc][arm] move setjmp+longjmp to fullbuild-only entrypoints (#96708)
nickdesaulniers Jun 25, 2024
847235b
[RISCV] Add DAG combine to turn (sub (shl X, 8), X) into orc.b (#96680)
topperc Jun 25, 2024
0d53366
APFloat: Add minimumnum and maximumnum (#96304)
wzssyqa Jun 25, 2024
54ca5a8
[libc][fixedvector] Add const_iterator begin/end (#96714)
PiJoules Jun 25, 2024
e6c2216
Add ConstantRangeList::unionWith() and ::intersectWith() (#96547)
haopliu Jun 25, 2024
6b29965
[clang-tidy] align all help message in run-clang-tidy (#96199)
HerrCai0907 Jun 26, 2024
fd7622a
Merge from 'sycl' to 'sycl-web' (10 commits)
calebwat Jun 26, 2024
2f481f2
Merge from 'sycl' to 'sycl-web' (1 commits)
Jun 26, 2024
074e55c
Merge from 'main' to 'sycl-web' (125 commits)
Jun 26, 2024
ef86451
[mlir] Remove `*` from generic Linalg/Vector rules in CODEOWNERS (#96…
dcaballe Jun 26, 2024
a4fef26
[X86][FixupSetCC] Substitute setcc + zext pair with setzucc if possib…
KanRobert Jun 26, 2024
55e60c3
[flang] Fix BoxAnalyzer.h for LLVM_ENABLE_EXPENSIVE_CHECKS (#96675)
dpalermo Jun 26, 2024
811e505
[llvm][CodeGen] Update checking method of loop-carried phi in window …
huaatian Jun 26, 2024
0fe82ea
gn build: Add missing source files to hwasan library.
pcc Jun 26, 2024
96b1f88
[ORC] Remove redundant locking of session mutex, update method name.
lhames Jun 15, 2024
896dd32
[ORC] Fix block dependence calculation in ObjectLinkingLayer.
lhames Jun 26, 2024
b347a72
[MC/DC][Coverage] Make tvbitmapupdate capable of atomic write (#96042)
chapuni Jun 26, 2024
f71f95d
[ELF] Rename IsRela to HasAddend
MaskRay Jun 26, 2024
174d353
[X86] Fix description for pass X86FixupSetCC.cpp, NFCI
KanRobert Jun 26, 2024
21bfc0e
Revert "[X86] Fix description for pass X86FixupSetCC.cpp, NFCI"
KanRobert Jun 26, 2024
9253ac2
[X86] Fix description for pass X86FixupSetCC.cpp, NFCI
KanRobert Jun 26, 2024
89d8df1
CodeGen, IR: Add target-{cpu,features} attributes to functions create…
pcc Jun 26, 2024
658b9a4
Fix tests after cbf6e93ce (#14294)
jsji Jun 26, 2024
0572254
[NFC] Update test to reflect expect optimization settings with clang-…
mdtoguchi Jun 26, 2024
30a6284
[SYCL] Fix Clang :: Driver/sycl-offload-new-driver.c test failure. (#…
tianqingw Jun 26, 2024
bfd63e6
Fix conflicts due to 95061 (#14311)
iagarwa Jun 26, 2024
51f0e21
[SYCL] Integrate the newly-added llvm.tan and llvm.experimental.const…
tianqingw Jun 26, 2024
8237b4b
Merge from 'sycl' to 'sycl-web' (17 commits)
Jun 27, 2024
fa48dbd
Merge from 'main' to 'sycl-web' (116 commits)
iagarwa Jun 27, 2024
760261d
Merge remote-tracking branch 'origin/sycl-web' into llvmspirv_pulldown
sys-ce-bb Jun 27, 2024
eaea1d8
Update constant-vars test after LLVM GEP change (#2593)
svenvh Jun 5, 2024
ec826c5
Add automated release workflow (#2586)
ZzEeKkAa Jun 5, 2024
6edbfe1
Round up #elts of TypeVector when calculating memory size (#2504)
LU-JOHN Jun 5, 2024
170f860
Update complex-constexpr.ll (#2594)
MrSidims Jun 6, 2024
f1e0207
Avoid requiring C++20 (#2600)
LU-JOHN Jun 11, 2024
09dea92
Fix image access in link-attribute test (#2598)
svenvh Jun 13, 2024
093352b
Add support for multiple Intel cache controls on a single argument (#…
MrSidims Jun 17, 2024
d0f0838
Update few tests check lines to use debug records (#2602)
MrSidims Jun 17, 2024
1a321de
Make assertion precise (#2596)
LU-JOHN Jun 19, 2024
f455245
Fix missing includes (#2605)
svenvh Jun 21, 2024
fad9949
test: Fix x86 tests to use -mtriple=x86_64-unknown-linux-gnu (#2555)
mattst88 Jun 26, 2024
7c8cb41
Fix SPV_INTEL_runtime_aligned implementation part 1 (#1796)
MrSidims Jun 26, 2024
061de13
True Label and False Label of an OpBranchConditional must not be the …
vmaksimo Jun 26, 2024
de4b365
Update DebugInfo test after LLVM section symbol change (#2607)
svenvh Jun 26, 2024
6f707a4
Fix target id in decorates when there is forward decl (#2606)
wenju-he Jun 27, 2024
0378786
Adjust SYCLLowerIR tests to account for the new debug format
calebwat Jun 27, 2024
5465207
[SYCL][Test] Generate kernel-param test using script (#22546)
jsji Jun 28, 2024
2540696
[SYCL][thinLTO] Seperate module properties and symbol table generatio…
sarnex Jun 28, 2024
209ca8e
[SYCL] Add PassInstrumentation header in ComputeModuleRuntimeInfo
calebwat Jul 1, 2024
2b950a0
Merge branch 'sycl' into llvmspirv_pulldown
calebwat Jul 1, 2024
73b3c3f
[SYCL] Update clang verification checks to use fully qualified class …
calebwat Jul 2, 2024
f48bae2
[SYCL] Adjust additional test for clang verification
calebwat Jul 2, 2024
15eb8cf
[NFC] [clang][SPIR-V] Use AMDGPU prefix to avoid confusion (#96962)
jsji Jun 28, 2024
97e43dd
[SYCL][E2E] Fix Wmissing-template-arg-list-after-template-kw warnings
sys-ce-bb Jul 2, 2024
4e6a414
llvm-spirv: update test due to entry point diff
sys-ce-bb Jul 2, 2024
2515f6f
llvm-spirv: XFAIL RuntimeAligned.spt test
sys-ce-bb Jul 2, 2024
a5f1d63
[SYCL][Test] Update test due to GEP folding change
sys-ce-bb Jul 2, 2024
f2f3acc
[SYCL] Update sycl-offload-new-driver due to order diff
sys-ce-bb Jul 2, 2024
7820702
[Clang] Don't hardcode opnumber in module test
sys-ce-bb Jul 2, 2024
3d2a5ba
Merge branch 'sycl' into llvmspirv_pulldown
sys-ce-bb Jul 2, 2024
14abd9b
Merge branch 'sycl' into llvmspirv_pulldown
sys-ce-bb Jul 3, 2024
a159325
Remove unecessary include that require c++20
sys-ce-bb Jul 3, 2024
25f12ff
Merge branch 'sycl' into llvmspirv_pulldown
sys-ce-bb Jul 4, 2024
7a7619d
Fix conflict resolution for SPV_INTEL_runtime_aligned patch
vmaksimo Jul 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[libc][math] Implement double precision sin correctly rounded to all …
…rounding modes. (#95736)

- Algorithm:
- Step 1 - Range reduction: for a double precision input `x`, return `k`
and `u` such that
    - k is an integer
    - u = x - k * pi / 128, and |u| < pi/256
- Step 2 - Calculate `sin(u)` and `cos(u)` in double-double using Taylor
polynomials with errors < 2^-70 with FMA or < 2^-66 w/o FMA.
- Step 3 - Calculate `sin(x) = sin(k*pi/128) * cos(u) + cos(k*pi/128) *
sin(u)` using look-up table for `sin(k*pi/128)` and `cos(k*pi/128)`.
- Step 4 - Use Ziv's rounding test to decide if the result is correctly
rounded.
- Step 4' - If the Ziv's rounding test failed, redo step 1-3 using
128-bit precision.
- Currently, without FMA instructions, the large range reduction only
works correctly for the default rounding mode (FE_TONEAREST).
- Provide `LIBC_MATH` flag so that users can set `LIBC_MATH =
LIBC_MATH_SKIP_ACCURATE_PASS` to build the `sin` function without step 4
and 4'.
  • Loading branch information
lntue authored Jun 24, 2024
commit 16903ace180755b7558234ff2b2e8d89b00dcb88
1 change: 1 addition & 0 deletions libc/config/darwin/arm/entrypoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.scalbnl
libc.src.math.sincosf
libc.src.math.sinhf
libc.src.math.sin
libc.src.math.sinf
libc.src.math.sqrt
libc.src.math.sqrtf
Expand Down
1 change: 1 addition & 0 deletions libc/config/linux/aarch64/entrypoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.scalbnl
libc.src.math.sincosf
libc.src.math.sinhf
libc.src.math.sin
libc.src.math.sinf
libc.src.math.sqrt
libc.src.math.sqrtf
Expand Down
1 change: 1 addition & 0 deletions libc/config/linux/arm/entrypoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.scalbnf
libc.src.math.scalbnl
libc.src.math.sincosf
libc.src.math.sin
libc.src.math.sinf
libc.src.math.sinhf
libc.src.math.sqrt
Expand Down
1 change: 1 addition & 0 deletions libc/config/linux/riscv/entrypoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,7 @@ set(TARGET_LIBM_ENTRYPOINTS
libc.src.math.scalbnl
libc.src.math.sincosf
libc.src.math.sinhf
libc.src.math.sin
libc.src.math.sinf
libc.src.math.sqrt
libc.src.math.sqrtf
Expand Down
2 changes: 1 addition & 1 deletion libc/docs/math/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ Higher Math Functions
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
| rsqrt | | | | | | 7.12.7.9 | F.10.4.9 |
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
| sin | |check| | large | | | | 7.12.4.6 | F.10.1.6 |
| sin | |check| | |check| | | | | 7.12.4.6 | F.10.1.6 |
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
| sincos | |check| | large | | | | | |
+-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
Expand Down
52 changes: 41 additions & 11 deletions libc/src/__support/FPUtil/double_double.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,22 @@ using DoubleDouble = LIBC_NAMESPACE::NumberPair<double>;
// The output of Dekker's FastTwoSum algorithm is correct, i.e.:
// r.hi + r.lo = a + b exactly
// and |r.lo| < eps(r.lo)
// if ssumption: |a| >= |b|, or a = 0.
// Assumption: |a| >= |b|, or a = 0.
template <bool FAST2SUM = true>
LIBC_INLINE constexpr DoubleDouble exact_add(double a, double b) {
DoubleDouble r{0.0, 0.0};
r.hi = a + b;
double t = r.hi - a;
r.lo = b - t;
if constexpr (FAST2SUM) {
r.hi = a + b;
double t = r.hi - a;
r.lo = b - t;
} else {
r.hi = a + b;
double t1 = r.hi - a;
double t2 = r.hi - t1;
double t3 = b - t1;
double t4 = a - t2;
r.lo = t3 + t4;
}
return r;
}

Expand All @@ -40,22 +50,35 @@ LIBC_INLINE constexpr DoubleDouble add(const DoubleDouble &a,

// Assumption: |a.hi| >= |b|
LIBC_INLINE constexpr DoubleDouble add(const DoubleDouble &a, double b) {
DoubleDouble r = exact_add(a.hi, b);
DoubleDouble r = exact_add<false>(a.hi, b);
return exact_add(r.hi, r.lo + a.lo);
}

// Velkamp's Splitting for double precision.
LIBC_INLINE constexpr DoubleDouble split(double a) {
// Veltkamp's Splitting for double precision.
// Note: This is proved to be correct for all rounding modes:
// Zimmermann, P., "Note on the Veltkamp/Dekker Algorithms with Directed
// Roundings," https://inria.hal.science/hal-04480440.
// Default splitting constant = 2^ceil(prec(double)/2) + 1 = 2^27 + 1.
template <size_t N = 27> LIBC_INLINE constexpr DoubleDouble split(double a) {
DoubleDouble r{0.0, 0.0};
// Splitting constant = 2^ceil(prec(double)/2) + 1 = 2^27 + 1.
constexpr double C = 0x1.0p27 + 1.0;
// CN = 2^N.
constexpr double CN = static_cast<double>(1 << N);
constexpr double C = CN + 1.0;
double t1 = C * a;
double t2 = a - t1;
r.hi = t1 + t2;
r.lo = a - r.hi;
return r;
}

// Note: When FMA instruction is not available, the `exact_mult` function is
// only correct for round-to-nearest mode. See:
// Zimmermann, P., "Note on the Veltkamp/Dekker Algorithms with Directed
// Roundings," https://inria.hal.science/hal-04480440.
// Using Theorem 1 in the paper above, without FMA instruction, if we restrict
// the generated constants to precision <= 51, and splitting it by 2^28 + 1,
// then a * b = r.hi + r.lo is exact for all rounding modes.
template <bool NO_FMA_ALL_ROUNDINGS = false>
LIBC_INLINE DoubleDouble exact_mult(double a, double b) {
DoubleDouble r{0.0, 0.0};

Expand All @@ -65,7 +88,13 @@ LIBC_INLINE DoubleDouble exact_mult(double a, double b) {
#else
// Dekker's Product.
DoubleDouble as = split(a);
DoubleDouble bs = split(b);
DoubleDouble bs;

if constexpr (NO_FMA_ALL_ROUNDINGS)
bs = split<28>(b);
else
bs = split(b);

r.hi = a * b;
double t1 = as.hi * bs.hi - r.hi;
double t2 = as.hi * bs.lo + t1;
Expand All @@ -82,9 +111,10 @@ LIBC_INLINE DoubleDouble quick_mult(double a, const DoubleDouble &b) {
return r;
}

template <bool NO_FMA_ALL_ROUNDINGS = false>
LIBC_INLINE DoubleDouble quick_mult(const DoubleDouble &a,
const DoubleDouble &b) {
DoubleDouble r = exact_mult(a.hi, b.hi);
DoubleDouble r = exact_mult<NO_FMA_ALL_ROUNDINGS>(a.hi, b.hi);
double t1 = multiply_add(a.hi, b.lo, r.lo);
double t2 = multiply_add(a.lo, b.hi, t1);
r.lo = t2;
Expand Down
10 changes: 5 additions & 5 deletions libc/src/__support/FPUtil/dyadic_float.h
Original file line number Diff line number Diff line change
Expand Up @@ -278,11 +278,11 @@ LIBC_INLINE constexpr DyadicFloat<Bits> quick_add(DyadicFloat<Bits> a,
// don't need to normalize the inputs again in this function. If the inputs are
// not normalized, the results might lose precision significantly.
template <size_t Bits>
LIBC_INLINE constexpr DyadicFloat<Bits> quick_mul(DyadicFloat<Bits> a,
DyadicFloat<Bits> b) {
LIBC_INLINE constexpr DyadicFloat<Bits> quick_mul(const DyadicFloat<Bits> &a,
const DyadicFloat<Bits> &b) {
DyadicFloat<Bits> result;
result.sign = (a.sign != b.sign) ? Sign::NEG : Sign::POS;
result.exponent = a.exponent + b.exponent + int(Bits);
result.exponent = a.exponent + b.exponent + static_cast<int>(Bits);

if (!(a.mantissa.is_zero() || b.mantissa.is_zero())) {
result.mantissa = a.mantissa.quick_mul_hi(b.mantissa);
Expand All @@ -309,7 +309,7 @@ multiply_add(const DyadicFloat<Bits> &a, const DyadicFloat<Bits> &b,
// Simple exponentiation implementation for printf. Only handles positive
// exponents, since division isn't implemented.
template <size_t Bits>
LIBC_INLINE constexpr DyadicFloat<Bits> pow_n(DyadicFloat<Bits> a,
LIBC_INLINE constexpr DyadicFloat<Bits> pow_n(const DyadicFloat<Bits> &a,
uint32_t power) {
DyadicFloat<Bits> result = 1.0;
DyadicFloat<Bits> cur_power = a;
Expand All @@ -325,7 +325,7 @@ LIBC_INLINE constexpr DyadicFloat<Bits> pow_n(DyadicFloat<Bits> a,
}

template <size_t Bits>
LIBC_INLINE constexpr DyadicFloat<Bits> mul_pow_2(DyadicFloat<Bits> a,
LIBC_INLINE constexpr DyadicFloat<Bits> mul_pow_2(const DyadicFloat<Bits> &a,
int32_t pow_2) {
DyadicFloat<Bits> result = a;
result.exponent += pow_2;
Expand Down
14 changes: 14 additions & 0 deletions libc/src/__support/macros/optimization.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,18 @@ LIBC_INLINE constexpr bool expects_bool_condition(T value, T expected) {
#error "Unhandled compiler"
#endif

// Defining optimization options for math functions.
// TODO: Exporting this to public generated headers?
#define LIBC_MATH_SKIP_ACCURATE_PASS 0x01
#define LIBC_MATH_SMALL_TABLES 0x02
#define LIBC_MATH_NO_ERRNO 0x04
#define LIBC_MATH_NO_EXCEPT 0x08
#define LIBC_MATH_FAST \
(LIBC_MATH_SKIP_ACCURATE_PASS | LIBC_MATH_SMALL_TABLES | \
LIBC_MATH_NO_ERRNO | LIBC_MATH_NO_EXCEPT)

#ifndef LIBC_MATH
#define LIBC_MATH 0
#endif // LIBC_MATH

#endif // LLVM_LIBC_SRC___SUPPORT_MACROS_OPTIMIZATION_H
49 changes: 49 additions & 0 deletions libc/src/math/generic/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,23 @@ add_header_library(
libc.src.__support.common
)

add_header_library(
range_reduction_double
HDRS
range_reduction_double_common.h
range_reduction_double_fma.h
range_reduction_double_nofma.h
DEPENDS
libc.src.__support.FPUtil.double_double
libc.src.__support.FPUtil.dyadic_float
libc.src.__support.FPUtil.fp_bits
libc.src.__support.FPUtil.fma
libc.src.__support.FPUtil.multiply_add
libc.src.__support.FPUtil.nearest_integer
libc.src.__support.common
libc.src.__support.integer_literals
)

add_header_library(
sincosf_utils
HDRS
Expand All @@ -146,6 +163,15 @@ add_header_library(
libc.src.__support.common
)

add_header_library(
sincos_eval
HDRS
sincos_eval.h
DEPENDS
libc.src.__support.FPUtil.double_double
libc.src.__support.FPUtil.multiply_add
)

add_entrypoint_object(
cosf
SRCS
Expand All @@ -167,6 +193,29 @@ add_entrypoint_object(
-O3
)

add_entrypoint_object(
sin
SRCS
sin.cpp
HDRS
../sin.h
DEPENDS
libc.hdr.errno_macros
libc.src.errno.errno
libc.src.__support.FPUtil.double_double
libc.src.__support.FPUtil.dyadic_float
libc.src.__support.FPUtil.fenv_impl
libc.src.__support.FPUtil.fp_bits
libc.src.__support.FPUtil.fma
libc.src.__support.FPUtil.multiply_add
libc.src.__support.FPUtil.nearest_integer
libc.src.__support.FPUtil.polyeval
libc.src.__support.FPUtil.rounding_mode
libc.src.__support.macros.optimization
COMPILE_OPTIONS
-O3
)

add_entrypoint_object(
sinf
SRCS
Expand Down
Loading