[LLVM-499] LLD support for linking the linux kernel
- [LLVM-504] Support for linker script symbol assignment to an alias.
-- Diagnosed problem and made reproducer on PR.
-- Reviewed the upstream patch.
- [LLVM-503] Support for discarding .dynamic, .dynstr and .dynsym
-- Reviewed upstream patch and proposed testcase that is
representative of the kernel use case.
Some revisiting of scripts and advice on how to cross compile clang
libraries. Looks like I have some updates to do to the documentation
for some configurations I haven't tried before.
- 2 days at ARM internal Codegen conference. Really good event,
standard of work was very high, left enthused.
Planned absences:
Christmas Holiday from 17th December to 4th January
== Progress ==
* FDPIC
- GCC: no feedback yet on v4 patches
- GDB: did not decide yet how/if to commonalize with frv code. Asked
for advise on the gdb list.
* GCC upstream validation:
- reported a few regressions, helped testing some patches
- dealing with some random results, still
- trying qemu-3.1.0-rc3, memory consumption problems with
aarch64-linux. LSF reports (cgroup-based) do not seem consistent with
time --verbose.
* GCC:
- rebased ubsan / bare-metal patches. Trying to build an LLVM
toolchain to see how to properly apply my patches
* misc (conf-calls, meetings, emails, ....)
- reviewing/submitted infra script patches
- ran Spec2006 on aarch32 using gcc-8.2 sysroot, results match the
previous ones, so the improvements are only imputable to the compiler.
- dealing with nasty ST-internal infrastructure problems
- trying to look at noinit/persistent attributes provided by other
toolchains, need a windows machine :(
== Next ==
FDPIC:
- GCC: handle feedback on v4 patches
- GDB: update patches
- uclibc-ng: look at how to test fdpic mode with openadk
Benchmarks:
- collect results
Validation:
- isolate if/why qemu-3.1.0-rc3 consumes more memory than 2.11 for
aarch64-linux target
Progress:
* VIRT-65 [QEMU upstream maintainership]
- release work (we needed an rc4, and then an rc5 due to a
late-breaking security bug)
- wrote a patch which I hope will fix synchronization of system
register state to KVM for a case where QEMU code wants to change
the register values, which it does when QEMU is arranging to inject
an exception into the guest
- catching up on patch review and assembling target-arm.next
ready for when the tree reopens
- some simple patches fixing minor memory leaks spotted by clang LeakSanitizer
- sent a patch for a race condition that meant we would sometimes ignore
a guest-requested system reset or otherwise get confused by it
thanks
-- PMM
== Progress ==
# [LLVM-492] [Thumb GlobalISel] Lower parameters for Thumb functions
- Committed upstream
# [LLVM-500] [Thumb GlobalISel] Support G_ADD, G_SUB, G_MUL
- Started working on this but it became apparent that the existing
tests would be easier to reuse if we had support for G_LOAD first
# [LLVM-506] [Thumb GlobalISel] Support G_LOAD and G_STORE
- Investigated whether we could get TableGen to select G_LOADs and
G_STOREs by porting ComplexPattern
- Unfortunately that is not enough, and even AArch64 has
hand-written code for it in the instruction selector
- Will handle it the ugly way next week
== Plan ==
# LLVM-506, LLVM-500
Greetings,
I’m trying to have the Aarch64 gcc optimize a single function using the O3 optimization in this manner:
void __attribute__ ((optimize ("-O3", "-ftree-vectorize" )))
However, when examining the assembler code, there is no trace of any optimization beyond the project default.
The only way to successfully enforce the optimization is using -O3 in the gcc command line. Then the compiler produces ARM neon instructions.
Do you know any issues regarding function level optimizations and the Aarch64 gcc?
Regards
[Upstream]
Posted a patch set aimed at register allocation vs function calls. It does
reduce code size by a percent or two. Emilio did some benchmarking and found
that it does help a bit, but does not completely eliminate the effect of the
call+ret overhead on the most modern of x86 implementations.
Reviewed v2 of tcg/riscv. Still a lot of work to be done, I think.
Cleanup of all tcg backends vs re-translation, which is no longer a thing.
Cleanup of tcg/i386 vs scratch registers.
[Other]
Updated the mustang to ubuntu 18.10. I was seeing some weirdness
that I'm hoping I can blame on the bionic 4.15 kernel and will be
gone with the cosmic 4.18 kernel. Fingers crossed...
r~
o 4 days week.
o LLVM
* 7.0.1-rc2:
- Miscompare on AArch64:
No luck with Sanitizers enabled, still digging.
* Machine Outliner on ARM prototype:
- Fixed Pic code issue.
- llvm bootstrap in thumb mode gives 4% code size reduction.
- Investigating new issues
o Misc
* Various meetings and discussions.