Displaying 4 results from an estimated 4 matches for "pcrelative".
Did you mean:
creative
2015 Jul 13
2
[LLVMdev] ARM Jump table pcrelative relaxation in clang / llc
Hi,
I have kept working on this and found the following (as llvm 3.5):
1) In the function MCObjectStreamer::EmitInstruction there is a check for
the instruction being relaxable or not:
if (!Assembler.getBackend().mayNeedRelaxation(Inst)) {
EmitInstToData(Inst, STI);
return;
}
At this stage, the instruction as been already selected to be ARM::ADR.
The call to mayNeed
2015-07-07 18:06
2015 Jul 05
2
[LLVMdev] ARM Jump table pcrelative relaxation in clang / llc
Hi,
I have written a PassManager (IR) pass that seriously increases the size of
the original IR code.
As a result it seems that the generated machine code is incorrect (as of
LLVM 3.5): The AsmPrinter generates the following instruction :
adr r2, .LJTI4_0_0
when going through the MC streamer, I get a "fatal error: error in backend:
out of range pc-relative fixup" .
Apparently, the fixup
2015 Jul 07
2
[LLVMdev] ARM Jump table pcrelative relaxation in clang / llc
I have created a small ll file to reproduce the problem.
I used the intrinsic function llvm.arm.space to introduce space between the
beginning of the code and the jump table.
If the first argument of llvm.arm.space is higher than INT_MAX (
*2147483647)*, then the bug is hit. Lower or equal to that value, it
passes. It looks like a precision issue. Does this sound familiar to
someone?
; ModuleID =
2015 Jul 06
3
[LLVMdev] ARM Jump table pcrelative relaxation in clang / llc
Hi Tim,
Thank you for your answer.
*We've fairly recently fixed a bug that looks very similar (r238680,which
was well after 3.6)*
If I wanted to back port that to 3.5 where should I look at? Where in the
ARM backend the decision to relax an instruction is taken?
*That's weird. Even with "-filetype=obj" (the bug only occurs whendirectly
writing an object file)? Not that it