On Sat, Jun 20, 2020 at 3:25 PM H.J. Lu <hjl.to...@gmail.com> wrote: > > On Sat, Jun 20, 2020 at 12:20 PM Yichao Yu <yyc1...@gmail.com> wrote: > > > > On Sat, Jun 20, 2020 at 3:12 PM H.J. Lu <hjl.to...@gmail.com> wrote: > > > > > > On Sat, Jun 20, 2020 at 11:37 AM Yichao Yu <yyc1...@gmail.com> wrote: > > > > > > > > On Sat, Jun 20, 2020 at 1:54 PM Yichao Yu <yyc1...@gmail.com> wrote: > > > > > > > > > > > > The current logic seems to be comparing the whole attribute tree > > > > > > > between the callee > > > > > > > and caller (or at least the tree starting from the target > > > > > > > attribute). > > > > > > > This is unnecessary and causes strange dependency of the > > > > > > > indirection > > > > > > > elimination on unrelated properties like `noinline`(PR95780) and > > > > > > > `visibility`(PR95778). > > > > > > > > > > > > Does it fix PR95780 and PR95778? Can you include testcases for > > > > > > them? > > > > > > > > OK so replacing > > > > https://github.com/gcc-mirror/gcc/commit/b8ce8129a560f64f8b2855c4a3812b7c3c0ebf3f#diff-e2d535917af8555baad2e9c8749e96a5 > > > > with/adding to the test the following one should work. I still > > > > couldn't get test to run though...... > > > > > > > Can you try the enclosed testcases? > > > > > > The assembly produced are the following with my patch and if I > > understand it correctly those should work. Unfortunately I don't know > > how to actually run the test as a test (if that makes sense....). > > > > Place 2 files under gcc/testsuite/gcc.target/i386 and in GCC build directory, > do > > $ make check-gcc RUNTESTFLAGS="--target_board='unix{-m32,}' > i386.exp=pr95778-*.c" > > They should fail without your patch and pass with your patch.
Thanks. (need to run now will be back in a hour or two) > > > -- > H.J.