[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220512082820.7t2rwwo3fffgwoxn@M910t>
Date: Thu, 12 May 2022 16:28:20 +0800
From: Changbin Du <changbin.du@...wei.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>
CC: Changbin Du <changbin.du@...wei.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
Steven Rostedt <rostedt@...dmis.org>, <hw.huiwang@...wei.com>,
<linux-riscv@...ts.infradead.org>, <linux-kernel@...r.kernel.org>,
<llvm@...ts.linux.dev>, <codegen-riscv@...course.llvm.org>,
<llvmproject@...course.llvm.org>, <craig.topper@...ive.com>,
<asb@...radbury.org>
Subject: Re: riscv: llvm-compiler: calling convention violation: temporary
register $t2 is used to pass the ninth function parameter
On Wed, May 11, 2022 at 11:39:07AM -0700, Nick Desaulniers wrote:
> On Mon, May 9, 2022 at 11:54 PM Changbin Du <changbin.du@...wei.com> wrote:
> >
[snip]
> > I also built a simple test function with 9 parameters by clang and same cflags,
> > but cannot reproduce it. Maybe it is conditional?
> >
> > Simple test code:
> > __attribute__ ((noinline))
> > void test_func(int *a, int *b, int *c, int *d, int *e, int *f, int *g, int *h, int *i)
> > {
> > printf("__find_rr_leaf: %d\n", *i);
> > }
> >
> > int main(void)
> > {
> > int a,b,c,d,e,f,g,h,i = 100;
> >
> > test_func(&a,&b,&c,&d,&e,&f,&g,&h,&i);
> > return 0;
> > }
>
> Hmm...any chance you could come up with a more concise test case then
> using creduce [0] or cvise [1]?
> [0] https://embed.cs.utah.edu/creduce/
> [1] https://github.com/marxin/cvise
>
>
okay, let me try to reduce the orignal source with creduce.
>
>
> --
> Thanks,
> ~Nick Desaulniers
--
Cheers,
Changbin Du
Powered by blists - more mailing lists