[llvm-commits] [PATCH] [MIPS] Avoid use of __builtin_unreachable() when compiling LLVM for MIPS.

Reed Kotler rkotler at mips.com
Wed Jul 25 02:17:46 PDT 2012


Hi Duncan,

I did not review this patch in detail but discussed it with Akira last 
night and he was okay with it though I don't think he reviewed it any 
detail either.

The problem is that llvm is used in Android now in several places and 
Google will only pull from official places (not from private Mips 
repositories). Their release schedule is not the same as official llvm
release points. I imagine that this will be the case with many of the 
users of llvm.

IN keeping with the llvm putback philosophy, we are trying to do 
incremental development and always be in sync with tip of tree.

It even creates problems for the MIPS team internally when individuals 
start to hold onto patches.
We all work on separate git branches that are synced every day to llvm 
tip of tree. There is some
overlap and for example, we often have to change td files and other 
common files within the MIPS
port while working on different features.

We do our own constant testing of llvm for MIPS. Our build procedures 
pull from tip of tree every day and run many variants of test suite for 
MIPS to avoid regressions.

I think that the main thing is to not regress the compiler or to break 
anyone elses ports.

Reed

On 07/25/2012 01:13 AM, Duncan Sands wrote:
> Hi Petar,
>
>> as I mentioned in the previous email, the bug report I pasted link for was the original root cause. There seem to be more issues caused by __builtin_unreachable, and toolchains that have a fix for that one (for instance latest Google 4.6.x toolchain for Android) still have issues with __builtin_unreachable for MIPS.
>>
>> We will inevitably resolve all these issues (we are debugging the latest occurrence now), but until that point is reached, we need to compile LLVM correctly.
> if this is a question of "make llvm_unreachable more friendly while we fix the
> MIPS backend" why not just apply your change locally rather than in the main
> repository?  That said, I personally think it was a mistake to replace
> assert(false) with llvm_unreachable in places that may be reachable but
> shouldn't happen.
>
> Ciao, Duncan.
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list