[all-commits] [llvm/llvm-project] 6712e2: Add support for flag output operand "=@cc" for Sys...
anoopkg6 via All-commits
all-commits at lists.llvm.org
Tue Oct 14 02:54:04 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6712e20c5261376a6b0015fb3c8d15124757d47d
https://github.com/llvm/llvm-project/commit/6712e20c5261376a6b0015fb3c8d15124757d47d
Author: anoopkg6 <anoop.kumar6 at ibm.com>
Date: 2025-10-14 (Tue, 14 Oct 2025)
Changed paths:
M clang/include/clang/Basic/TargetInfo.h
M clang/lib/Basic/Targets/AArch64.cpp
M clang/lib/Basic/Targets/SystemZ.cpp
M clang/lib/Basic/Targets/SystemZ.h
M clang/lib/Basic/Targets/X86.cpp
M clang/lib/CodeGen/CGStmt.cpp
A clang/test/CodeGen/inline-asm-systemz-flag-output.c
A clang/test/Preprocessor/systemz_asm_flag_output.c
M llvm/lib/Target/SystemZ/SystemZ.h
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/lib/Target/SystemZ/SystemZISelLowering.h
M llvm/test/CodeGen/SystemZ/htm-intrinsics.ll
A llvm/test/CodeGen/SystemZ/inline-asm-flag-output-01.ll
A llvm/test/CodeGen/SystemZ/inline-asm-flag-output-02.ll
Log Message:
-----------
Add support for flag output operand "=@cc" for SystemZ. (#125970)
Added Support for flag output operand "=@cc", inline assembly constraint
for
SystemZ.
- Clang now accepts "=@cc" assembly operands, and sets 2-bits condition
code
for output operand for SyatemZ.
- Clang currently emits an assertion that flag output operands are
boolean
values, i.e. in the range [0, 2). Generalize this mechanism to allow
targets to specify arbitrary range assertions for any inline assembly
output operand. This will be used to assert that SystemZ two-bit
condition-code values are in the range [0, 4).
- SystemZ backend lowers "@cc" targets by using ipm sequence to extract
condition code from PSW.
- DAGCombine tries to optimize lowered ipm sequence by combining
CCReg and computing effective CCMask and CCValid in combineCCMask for
select_ccmask and br_ccmask.
- Cost computation is done for merging conditionals for branch
instruction
in SelectionDAG, as split may cause branches conditions evaluation goes
across basic block and difficult to combine.
---------
Co-authored-by: anoopkg6 <anoopkg6 at github.com>
Co-authored-by: Ulrich Weigand <ulrich.weigand at de.ibm.com>
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list