== Progress ==
o Extended Validation (4/10)
- Investigate and reported Glibc/libsanitizer issue
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71445
- Looked at benchmark job issues
- Discuss benchmark/lava notification mechanism
o Linaro GCC (1/10)
- Merged FSF GCC 5.4 branch
o Upstream GCC (3/10)
- ARMv8.1 libatomic investigation:
seems to work fine when enabling multilib on AArch64
need to investigate completeness of the support.
o Misc (2/10)
* Various meetings and discussions.
* Backlfip patch reviews
== Plan ==
o Backport reviews and June snapshots
o Continue libatomic
o Benchmarking job fixes.
== This Week ==
* LTO (5/10)
a) committed r237207 to fix unresolved test-cases added in r236503 (1/10)
b) move increase_alignment pass to regular pass (3/10)
- Patch iterations based on suggestions from Honza and Richard
- Understanding lto streaming and decl merging code
c) TCWG-548 (1/10)
- WIP patch
* TCWG-319 (1/10)
- updated patch submitted upstream:
- changing vect_hw_misalign causes regression for vect-align-1.c
* Benchmarking (1/10)
- Benchmark successfully ran for linaro-gcc-5 submitted by Yvan
- Benchmark for fsf-gcc-6 failed both with prebuilt route and letting
job build the benchmark
* Misc (3/10)
- Meetings
- Travel to Mumbai for Schengen Visa appointment
== Next Week ==
- Try to get patch committed for increase_alignment
- TCWG-319: Look at vect-align-1.c regression
- TCWG-548: Complete implementation and validate patch.
- ipa-vrp: Experiment with Kugan's patch.
== Progress ==
* Validation
- disk full on one builder caused problem during the validation of
the long series of backports. We'll have to refine the cleanup policy.
- switch to docker on-hold until the builders are upgraded
* ABE
- looked a bit at the gdb/gdbserver issue
* Backports
- used a script to process the spreadsheet and submitted all the
backports that backflip was able to complete in batch mode (a lot!)
- fsf-5-branch merge review
* GCC
- regression reports on trunk, chasing problems that occur in corner
case configurations
- One of the Neon intrinsics tests I committed recently wrongly
executed v8 Neon code on v7 HW: I didn't catch this earlier because of
a bug in qemu, promptly fixed by Peter Maydell
- neon-testgen.ml removal delayed because other cleanup is desirable
before (fixing neon* effective-target tests on-going)
- started looking at PR 67591 (ARM v8 Thumb IT blocks deprecated)
* Support
- started looking at bug 2315
* Misc (conf-calls, meetings, emails, ...)
== Next ==
* Validation:
- patch reviews
- look at disk management/cleanup
* Backports
- check validation results
* GCC
- monitor trunk regressions
- fix "check_vect" guard in gcc.dg/vect tests
- fix neon* effective-target
- hopefully test-neongen.ml removal
- pr 67591
- advsimd tests
== Progress ==
TCWG-607 Initial ARM port for LLD committed upstream. Hello World on
an ARM with an ARM only gcc libc is possible, but not much else.
TCWG-611 Initial Thumb support sent for upstream review. Interworking
is possible at the BLX level but full interworking support
(veneers/thunks) isn't there yet. With this patch it will be possible
to do Hello World with a recent Linaro gcc release.
TCWG-634 llvm-mc putting out R_ARM_THM_PC24 for B<cond>.W instead of
R_ARM_THM_PC19. Simple fix now committed upstream.
== Plans ==
Interworking thunks for lld. The existing thunk design is very simple
and only supports one type of thunk per target. For interworking we
need at least two (ARM to Thumb) and (Thumb to ARM).
I think it might be possible to fit a basic implementation just good
enough for ARMv7a to be correct into the existing mechanism, however
just one more thunk type will need a more sophisticated design.
Current thought is to try and implement the basic design to learn a
bit more about the mechanism as it will hopefully not take too long.
== Progress ==
* Remove exit-on-error flag from CodeGen tests [TCWG-604] [4/10]
- This is a follow-up of TCWG-592: when changing the diag handler,
some of the tests started to fail, so we had to add an exit-on-error
flag to preserve the old behaviour until we can fix the tests.
- Patch fixing the MIR tests (PR27770) - committed upstream
- Submitted a patch fixing one of the AMDGPU tests (PR27761) - in
upstream review
- Submitted a patch fixing the ARM test (PR27765) - in upstream review
* Use git worktree in llvm helper scripts [TCWG-587] [1/10]
- Minor fixes during the review, hopefully we can wrap it up soon
* ARM: Do not test for CPUs, use SubtargetFeatures [TCWG-623] [3/10]
- Investigated uses of isCortexA*, isSwift etc in the ARM backend
- Started extracting subtarget features for the easy ones
* LLVM ARM 3.8.1 [TCWG-642] [1/10]
- Ran the ARM tests for the LLVM 3.8.1 release
* Investigate clang-cmake-thumbv7-a15-full-sh failure [TCWG-635] [1/10]
- Found patch that was causing problems, started discussion about it
on the mailing list
== Plan ==
* Remove exit-on-error flag from CodeGen tests [TCWG-604]
- Address any code review comments
- After committing the 2 remaining patches, we should be able to
remove the flag and wrap this up
* ARM: Do not test for CPUs, use SubtargetFeatures [TCWG-623]
- Extract more subtarget features
* OOO on Monday
== This Week ==
* LTO (6/10)
a) increase_alignment (2/10)
- posted patch upstream to convert it to regular pass
b) TCWG-548 (3/10)
- Lava job #3424 failed with timeout (same as #3370)
- Experimenting with partition sizes with and without the patch for
different benchmarks,
results consistently show a significant difference in last partition size.
- Trying a new approach.
c) TCWG-535 (1/10)
- posted partial patch upstream:
https://gcc.gnu.org/ml/gcc-patches/2016-06/msg00143.html
* TCWG-72 (2/10)
- Further patch iterations
- Approved by Richard
* Misc (2/10)
- Looked at function versioning.
- Wrote patch to address missing diagnostic in C/C++ FE, fails on bootstrap.
- Meetings
== Next Week ==
- TCWG-548: Implement new approach and experiment with it.
- ipa-vrp: Apply Kugan's prototype patch, and test it, sync on early vrp.
- TCWG-72, TCWG-319, TCWG-535, increase_alignment: ping for reviews.
- Travel to Mumbai on Monday for Schengen Visa appointment
== Progress ==
o Upstream GCC (4/10)
- Continuing ARMv8.1 libatomic investigation
(some infra issues now fixed)
o Misc (6/10)
* Various meetings and discussions.
* patch reviews
* Benchmarking notification investigation
* Booked Hotel and flights for tcwg sprint
== Plan ==
o Continue libatomic
o GCC 5.4 branch merge
o Benchmarking notification
== Progress ==
Fixed Bugs and posted patches for review
- PR71281 and PR71408
PR66726 - Convert expr
- Found way to handle this well and posted a patch.
IPA VRP
- Started with a simple implementation for intra-procedural early VRP
by refactoring tree-vrp.
- Still need to handle range dominance
- Ran into a latent issue in tree-vrp. Looking into it.
== Plan ==
- Follow upon remaining upstream patches
- IPA VRP
On 3 June 2016 at 17:10, Rafael Espíndola <rafael.espindola(a)gmail.com> wrote:
> Do keep in mind you are comparing a 11 year old project and a 11 month
> old one. There is a lot more churn on the 11 month old one.
LLD is at least 5 years old. Every time you re-write it doesn't reset history.
> Again, I am truly sorry we were unable to come up with a perfect
> design the first time. For the record, I don't think it is perfect
> yet. There will likely be more big changes to lld. That is the cost of
> trying to build as good a linker as we can.
This is not about what you do. It's about *how* you do it.
We have developers trying to create a linker. They are working on LLD
because Chris wanted a true LLVM linker. But it seems that you want a
project that you can do whatever you want, whenever you want.
This is *NOT* open source. Right now, LLD is *nothing more* than Rui's
and Rafael's pet project. I cannot recommend Linaro to collaborate on
those terms, and I sincerely recommend anyone that is listening to
this thread to not do so either.
> Being open source doesn't mean I get to implement what someone else
> wants. You are more than welcome to send patches, but they have avoid
> harming the rest of the linker. In particular, at this early stage
> they cannot harm its development. Once we have a mature project we can
> actually evaluate tradeoff.
We're clearly not welcome to send patches. We did, and you re-wrote it
and committed without asking the original author.
So, the plan is to wait for you to finish the initial implementation
alone? Again? What do we do in the interim? How many times are we
going to go through this?
I have waited 2 years before LLD was barely useful, then Adhemerval
implemented the AArch64 back-end. Then you destroyed and now we have
waited another year, but we're still unable to collaborate. If
anything, now it's even harder than it was last year.
Why can't we help with the design, too? We know about ARM and AArch64,
that's what we do, and we can provide you with the expertise without
having to go on your own doing everything. That is the whole point of
collaborative development, and it seems that you're missing this
point.
> And just like we did, you are more than welcome to try to write
> something better. Please let us know how it goes.
Is this the position of every LLD developer?
Rui, Nick, Chris?
I'm seriously looking for others to chime in and let me know if that
is the final stance on LLD, so that I can finally write it off and go
work on another linker.
If the official position is that LLD is a project that only Rui and
Rafael can design and implement for another 2~3 years, I *cannot*
recommend Linaro and its members to participate.
cheers,
--renato