I tend to keep quite a lot of notes on the development related (sometimes at work, sometimes not) I do on a week-by-week basis, and thought it might be fun to write up the parts that were public. This may or may not be of wider interest, but it aims to be a useful aide-mémoire for my purposes at least. Weeks with few entries might be due to focusing on downstream work (or perhaps just a less productive week - I am only human!).
llvm-objdump
(and related tools) when encountering
unrecognised RISC-V base or ISA extension versions, or unrecognised ISA
extension names.Zicond
(integer conditional operations) extension
(D146946,
D147147). This is essentially the same
as the XVentanaCondOps
extension.seq_cst
atomic ops to
RISC-V lr/sc loops was slightly stronger than required by the mapping table
in the ISA manual. Specifically, sc.{w|d}.rl
is sufficient rather than
sc.{w|d}.aqrl
. Fixed with D146933.zfbfmin
and zfa
respectively)._Float16
lowering on RISC-V
(D142326,
D145074).z*inx[min]
extensions.PseudoQuietFCMP
.m
constraint was
generating worse code on LLVM vs GCC, finding that LLVM conservatively
lowers this to a single register, while GCC treats m
as reg+imm, relying
on users indicating A
when using a memory operand with an instruction that
can't take an immediate offset. Worked with a colleague who posted
D146245 to fix this.-Oz
, bisecting it to
the commit that enabled machine copy propagation by default. I found the
issue was due to machine copy propagation running after the machine
outliner, and incorrectly determining that some register writes in outlined
functions were not live-out. I posted and
landed D146037 to fix this by running
machine copy propagation earlier in the pipeline, though a more principled
fix would be desirable.*inx
twin.RISCVISAInfo
test
coverage and fix an issue that surfaced through that.parseNormalizedArchString
function I introduced to fix a similar issue
in LLD. This built on some directly committed work to expand
testing.-fexceptions
in follow-up to
discussion in issue
61216._Float16
ABI
lowering fixes, GP relaxation in LLD, my recent RISC-V buildbot, and some
vectorisation related issues._Float16
for RISC-V. Primarily, we weren't handling the cases where a
GPR+FPR or a pair of FPRs are used to pass small structs including
_Float16
.
update_cc_test_check.py --function-signature
(required for the refactor)
landed as part of D144963, this can
hopefully be completed._Float16
ABI lowering, and
D145074 to fix it. Also
D145071 to set the HasLegalHalfType
property, but the semantics of that are less clear.__bf16
, needed for the RISC-V bfloat16 extension.traverse()
helper in mistletoe
where merged upstream, I
removed
my downstream version.___pthread_mutex_lock
when executing
ccache
. Setting inode_cache=false
in the local ccache
config seems
to avoid this.Zicclsm
terminology introduced in the RISC-V profiles.