<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hello,
<div class=""><br class="">
</div>
<div class="">I’m writing machine function passes for programs running with ARMv7-M ISA. My pass adds some instructions to the original code, and now I got </div>
<div class=""><br class="">
</div>
<div class=""><span class="Apple-tab-span" style="white-space:pre"></span>fatal error: <i class="">error in backend: out of range pc-relative fixup value</i></div>
<div class=""><br class="">
</div>
<div class="">when llvm generates native code after running the transformation pass. I think it’s because my transformation pass increases the size of the original code and thus some branch instructions cannot reach their destination (for example, the beq instruction
 can only jump to a pc-relative destination within range -256 to 254 bytes). </div>
<div class=""><br class="">
</div>
<div class="">It looks like bugpoint is a good tool to pinpoint which branch instruction caused the error. Unfortunately the blogs I found online are all about using bugpoint for IR passes but not for native code generation. Can anyone give me some help on
 this issue? (pointing to a good tutorial, or sharing some techniques to pinpoint the troublesome instructions, etc.)</div>
<div class=""><br class="">
</div>
<div class="">Thanks very much.</div>
<div class=""><br class="">
</div>
<div class="">- Jie</div>
</body>
</html>