Robert Baruch via llvm-dev
2017-Nov-02 04:20 UTC
[llvm-dev] Why am I getting FrameIndex:i64<0> when I have no i64's?
Here's the IR I'm trying to compile for my backend, a 16-bit CPU: ; ModuleID = 'foo.c' source_filename = "foo.c" target datalayout "E-m:e-p16:16:16-i1:16:16-i8:16:16-i16:16:16-i32:16:16-i64:16:16-S16-n16" target triple = "tms9900" @global_var = common global i16 0, align 2 ; Function Attrs: noinline nounwind optnone define signext i16 @dothis(i16 signext %a) #0 { entry: %a.addr = alloca i16, align 2 store i16 %a, i16* %a.addr, align 2 %0 = load i16, i16* @global_var, align 2 %1 = load i16, i16* %a.addr, align 2 %add = add nsw i16 %0, %1 ret i16 %add } attributes #0 = { noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } !llvm.module.flags = !{!0} !llvm.ident = !{!1} !0 = !{i32 1, !"wchar_size", i32 2} !1 = !{!"clang version 6.0.0 (trunk 315731) (llvm/trunk 316278)"} So far, so good. Now, when I try to compile this: build/bin/llc -march tms9900 -filetype=asm foo.bc -view-dag-combine1-dags -debug -O0 ... Initial selection DAG: BB#0 'dothis:entry' SelectionDAG has 17 nodes: t0: ch = EntryToken t2: i16,ch = CopyFromReg t0, Register:i16 %vreg0 t6: i64 = Constant<0> t8: ch = store<ST2[%a.addr]> t0, t2, FrameIndex:i64<0>, undef:i64 t4: ch = CopyToReg t0, Register:i16 %vreg1, t2 t13: ch = TokenFactor t4, t8 t10: i16,ch = load<LD2[@global_var](dereferenceable)> t8, GlobalAddress:i64<i16* @global_var> 0, undef:i64 t11: i16,ch = load<LD2[%a.addr](dereferenceable)> t8, FrameIndex:i64<0>, undef:i64 t12: i16 = add nsw t10, t11 t15: ch,glue = CopyToReg t13, Register:i16 %R5, t12 t16: ch = TMS9900ISD::Ret t15, Register:i16 %R5, t15:1 ... Where are the i64's coming from? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171102/a4f040e7/attachment.html>
Krzysztof Parzyszek via llvm-dev
2017-Nov-02 10:09 UTC
[llvm-dev] Why am I getting FrameIndex:i64<0> when I have no i64's?
On 11/1/2017 11:20 PM, Robert Baruch via llvm-dev wrote:> target datalayout = > "E-m:e-p16:16:16-i1:16:16-i8:16:16-i16:16:16-i32:16:16-i64:16:16-S16-n16"Change the p16:16:16 to p:16:16:16 and see if that helps. -Krzysztof -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Robert Baruch via llvm-dev
2017-Nov-03 05:03 UTC
[llvm-dev] Why am I getting FrameIndex:i64<0> when I have no i64's?
That was the problem, thanks! On Thu, Nov 2, 2017 at 3:09 AM Krzysztof Parzyszek via llvm-dev < llvm-dev at lists.llvm.org> wrote:> On 11/1/2017 11:20 PM, Robert Baruch via llvm-dev wrote: > > target datalayout > > "E-m:e-p16:16:16-i1:16:16-i8:16:16-i16:16:16-i32:16:16-i64:16:16-S16-n16" > > Change the p16:16:16 to p:16:16:16 and see if that helps. > > -Krzysztof > > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, > hosted by The Linux Foundation > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171103/79b2ab39/attachment.html>