[llvm-dev] Invalid instruction generated on armV4

Frédéric Richez via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 11 07:07:40 PDT 2015


Thanks renato I will try to do this but it is quite difficult for me, I don’t known a lot about llvm project, not more than wikipedia definition ;-)
I had a look on ARMFatsISel source file history. In 2012 a change concerning “support for non-global callee” has removed a guard condition in SelectCall method.
<<https://github.com/llvm-mirror/llvm/commit/1c8fccbc12e6348c8003aff9b89078324257fc4e <https://github.com/llvm-mirror/llvm/commit/1c8fccbc12e6348c8003aff9b89078324257fc4e>>>

 // Only handle global variable Callees.
const GlobalValue *GV = dyn_cast<GlobalValue>(Callee);
if (!GV)
    return false;

I restored this peace of code in my local llvm source code, rebuild rust and … no more blx instruction generated, all my run programs seems to run correctly !
I’m sure it is not a solution but it could help to solve/understand the issue.

Have a nice we.

Frédéric.


> On 11 Sep 2015, at 13:43, Renato Golin <renato.golin at linaro.org> wrote:
> 
> On 11 September 2015 at 12:41, Frédéric Richez <llvm-dev at lists.llvm.org> wrote:
>> I’m using rust head version that currently use llvm 3.7 …
> 
> Yes, I saw that, tracking the GitHub repo relatively closely.
> 
> I also thought about that v4 bug on the same area from 3.6, but this
> seems to be a new one.
> 
> I think the best thing to do now is to create a bugzilla entry with as
> much information as you can. If possible, try to reduce to a piece of
> IR that reproduces the failure with standard tools. If not, the more
> you can provide the better, so at least we can help you debug the
> problem.
> 
> cheers,
> --renato

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150911/2da49d3c/attachment.html>


More information about the llvm-dev mailing list