This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello Michael, I have attached the patch as well, (the same as in : https://github.com/andrewsadek/microblaze-pic-data-text-rel/blob/pic_data_text_rel/PATCH_BUNDLE/gcc.patch) On Thu, Mar 22, 2018 at 8:37 PM, Andrew Sadek <andrew.sadek.se@gmail.com> wrote: > Hello Michael, > > I have adapted the test cases. > > Please find the patch below with Change log, description and test results. > > Description: > ------------------ > > This branch is regarding a new implemented feature in GCC Microblaze > that allows Position Independent Code to run using Data Text Relative > addressing instead of using Global Offset Table. > > Its aim was to make 'PIC' more efficient and flexible as elf size > excess/ performance overhead were noticed when using GOT due to the > indirect addressing. > The change was tested with the dhrystone benchmark on a real Hardware > (Xilinx FPGA Spartan 6) and the test report went successfully for all > optimization levels. > > Indeed, Microblaze does not support PC-relative addressing in Hardware like ARM. > The idea was to store the start address of current text section in > 'r20' instead of GOT, in the function prologue. Correspondingly, data > references will be an offset from the original reference value to the > start of text thus being added to the 'r20' base register will resolve > the actual address. > > Henceforth, 2 new relocations have been created: > - 'R_MICROBLAZE_TEXTPCREL_64': resolves offset of current PC to start > of text in order to set r20 > - 'R_MICROBLAZE_TEXTREL_64': resolves offset of mentioned data > reference to start of text > > Accordingly, both assembler and linker (binutils) have been adapted. > > For extra details: > https://github.com/andrewsadek/microblaze-pic-data-text-rel/blob/pic_data_text_rel/README.md > > Change Log: > --------------------- > > 2018-03-22 Andrew Sadek <andrew.sadek.se@gmail.com> > > Microblaze Target: PIC data text relative > * gcc/config/microblaze/microblaze.opt: add new option > -mpic-data-text-rel. > * gcc/config/microblaze/microblaze-protos.h (microblaze_constant_address_p): > Add microblaze_constant_address_p function instead of the macro in > microblaze.h > * gcc/config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL): > New addressing mode > for data-text relative position indepenedent code. > (microblaze_classify_unspec): add 'UNSPEC_TEXT' case -> > 'ADDRESS_SYMBOLIC_TXT_REL'. > (microblaze_classify_address): add handling for UNSPEC + CONST_INT. > (microblaze_legitimate_pic_operand): exclude function calls from > pic operands > in case of TARGET_PIC_DATA_TEXT_REL option. > (microblaze_legitimize_address): generate 'UNSPEC_TEXT' for all possible > addresses cases. > (microblaze_address_insns): add 'ADDRESS_SYMBOLIC_TXT_REL' case. > (print_operand): add 'ADDRESS_SYMBOLIC_TXT_REL' case. > (print_operand_address): add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling for > 'address + offset'. > (microblaze_expand_prologue): add new function prologue call for > 'r20' assignation. > (microblaze_asm_generate_pic_addr_dif_vec): override new target hook > 'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector > table in case of TARGET_PIC_DATA_TEXT_REL. > (expand_pic_symbol_ref): add handling for 'UNSPEC_TEXT'. > * gcc/config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL): > Add new macros 'UNSPEC_TEXT', > 'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue > + exclude function calls > from 'UNSPEC_PLT' in case of data text relative mode. > * gcc/doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add > new target hook for generating > address diff vector tables in case of flag_pic. > * gcc/doc/tm.texi : Regenerate. > * gcc/stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): append new condition > 'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case > of addr diff vector generation. > * gcc/target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): add > target hook definition. > * gcc/targhooks.h, gcc/targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): > add default function for generate_pic_addr_diff_vec -> flag_pic. > * gcc/doc/invoke.texi (Add new pic option): Add new microblaze pic > option for data text relative. > > > Test Results (using qemu microblaze little endian): > ---------------------------------------------------------------------------- > > === gcc Summary === > > # of expected passes 90874 > # of unexpected failures 1317 > # of unexpected successes 3 > # of expected failures 207 > # of unresolved testcases 115 > # of unsupported tests 2828 > > Full summary: > https://raw.githubusercontent.com/andrewsadek/microblaze-pic-data-text-rel/pic_data_text_rel/PATCH_BUNDLE/gcc.sum > > Patch: > ---------- > > Actually, I found that gmail transforms tabs to spaces even plain text > mode, also I can not attach the patch as I receive error from > sourceware server, > so for now kindly find the patch in the link below,, if you have > solution for that please advise. > > > https://github.com/andrewsadek/microblaze-pic-data-text-rel/blob/pic_data_text_rel/PATCH_BUNDLE/gcc.patch > > On Tue, Mar 20, 2018 at 5:30 PM, Michael Eager <eager@eagerm.com> wrote: >> Hi Andrew -- >> >> I just do a visual check. The script can help. >> >> On 03/20/2018 07:13 AM, Andrew Sadek wrote: >>> >>> Many Thanks Michael for the updates .. I was actually looking for >>> something >>> similar for my test case .. I m currently revising the Gnu code >>> conventions >>> on the patches then will send them again. >>> I m actually running the 'check_GNU_Style' in contrib folder,, is this the >>> correct way ? Is it enough ? >>> >>> Andrew >>> >>> On Tue, Mar 20, 2018, 03:30 Michael Eager <eager@eagerm.com> wrote: >>> >>>> Also check the { dg-skip-if } directive. >>>> https://gcc.gnu.org/onlinedocs/gccint/Directives.html >>>> >>>> On 03/19/2018 06:14 PM, Michael Eager wrote: >>>>> >>>>> Hi Andrew -- >>>>> >>>>> Please take a look at the test case description: >>>>> https://gcc.gnu.org/wiki/HowToPrepareATestcase >>>>> and see if you can do one of the following: >>>>> - Modify the regex expression in the scan-assembler to accept >>>>> either format of generated output >>>>> or >>>>> - Add { dg-option } directives to turn off your new options >>>>> if specified. (You should be able to specify -mno-pic....) >>>>> or >>>>> - Duplicate the test cases and add { dg-option } directives >>>>> to specify the correct options, with and without your >>>>> new options. >>>>> or >>>>> - Add test cases with a { dg-option } directive with your >>>>> new options. >>>>> >>>>> This is not required -- your patch appears to work OK. Normally, >>>>> the new PIC Data options would not be used when running the test >>>>> suite, so the tests would not fail. It's just nice to have the >>>>> test suite updated when new options are added. >>>>> >>>>> On 03/19/2018 01:07 PM, Michael Eager wrote: >>>>>> >>>>>> Hi Andrew -- >>>>>> >>>>>> Good work. >>>>>> >>>>>> Please submit your updated patch. Check that you follow >>>>>> GNU coding standards. Also make sure that the new options >>>>>> are documented in gcc/doc/invoke.texi. >>>>>> >>>>>> On 03/18/18 03:27, Andrew Sadek wrote: >>>>>>> >>>>>>> Hello Michael, >>>>>>> >>>>>>> I have run the test using the new PIC options. >>>>>>> Actually, I have discovered 2 unhandled cases in >>>>>>> 'microblaze_expand_move' + missing conditions in linker relax >>>>>>> leading some test cases execution to fail. >>>>>>> After fixing them, I made a re-run for the whole regression, and the >>>>>>> results analogy below: >>>>>>> >>>>>>> Original, without my patch: >>>>>>> === gcc Summary === >>>>>>> >>>>>>> # of expected passes 90776 >>>>>>> # of unexpected failures 1317 >>>>>>> # of unexpected successes 3 >>>>>>> # of expected failures 207 >>>>>>> # of unresolved testcases 115 >>>>>>> # of unsupported tests 2828 >>>>>>> >>>>>>> With my patch, calling '-fPIE - mpic-data-text-rel' >>>>>>> === gcc Summary === >>>>>>> >>>>>>> # of expected passes 90843 >>>>>>> # of unexpected failures 1256 >>>>>>> # of unexpected successes 3 >>>>>>> # of expected failures 207 >>>>>>> # of unresolved testcases 115 >>>>>>> # of unsupported tests 2853 >>>>>>> >>>>>>> After running the 'dg-cmp-results.sh' in contrib folder, the >>>>>>> PASS->FAIL are below: >>>>>>> >>>>>>> PASS->FAIL: gcc.dg/uninit-19.c (test for excess errors) >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -O2 >>>>>>> -flto -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -O2 >>>>>>> -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -O2 >>>>>>> -flto -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -O2 >>>>>>> -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> >>>>>>> the 'gcc.dg/uninit-19.c ' already fails with -fPIE, and for the >>>>>>> others in microblaze, >>>>>>> expectation is r0 or r13 as a base register which is not the case >>>>>>> here 'r20', and these tests also fails with -fPIE. >>>>>>> Moreover, the test cases that failed due 'unresolved >>>>>>> GLOBAL_OFFSET_TABLE' now pass as we do not have GOT in data text >>>>>>> relative. >>>>>>> >>>>>>> Please tell me if any adjustments needed or If I need to re-run >>>> >>>> nything. >>>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> On Sun, Mar 18, 2018 at 12:25 PM, Andrew Sadek >>>>>>> <andrew.sadek.se@gmail.com <mailto:andrew.sadek.se@gmail.com>> wrote: >>>>>>> >>>>>>> Hello Michael, >>>>>>> >>>>>>> I have run the test using the new PIC options. >>>>>>> Actually, I have discovered 2 unhandled cases in >>>>>>> 'microblaze_expand_move' + missing conditions in linker relax >>>>>>> leading some test cases execution to fail. >>>>>>> After fixing them, I made a re-run for the whole regression, and >>>> >>>> the >>>>>>> >>>>>>> results analogy below: >>>>>>> >>>>>>> Original, without my patch: >>>>>>> === gcc Summary === >>>>>>> >>>>>>> # of expected passes 90776 >>>>>>> # of unexpected failures 1317 >>>>>>> # of unexpected successes 3 >>>>>>> # of expected failures 207 >>>>>>> # of unresolved testcases 115 >>>>>>> # of unsupported tests 2828 >>>>>>> >>>>>>> With my patch, calling '-fPIE - mpic-data-text-rel' >>>>>>> === gcc Summary === >>>>>>> >>>>>>> # of expected passes 90843 >>>>>>> # of unexpected failures 1256 >>>>>>> # of unexpected successes 3 >>>>>>> # of expected failures 207 >>>>>>> # of unresolved testcases 115 >>>>>>> # of unsupported tests 2853 >>>>>>> >>>>>>> After running the 'dg-cmp-results.sh' in contrib folder, the >>>>>>> PASS->FAIL are below: >>>>>>> >>>>>>> PASS->FAIL: gcc.dg/uninit-19.c (test for excess errors) >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var1.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/data_var2.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r0 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var1.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var2.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var4.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O0 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O1 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O2 -flto >>>>>>> -fno-use-linker-plugin -flto-partition=none scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O2 -flto >>>>>>> -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O2 >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -O3 -g >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/sdata_var5.c -Os >>>>>>> scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -O0 scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -O1 scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -O2 >>>>>>> -flto -fno-use-linker-plugin -flto-partition=none >>>>>>> scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -O2 >>>>>>> -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -O2 scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -O3 >>>>>>> -g scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst1_gpopt.c >>>>>>> -Os scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -O0 scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -O1 scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -O2 >>>>>>> -flto -fno-use-linker-plugin -flto-partition=none >>>>>>> scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -O2 >>>>>>> -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler >>>>>>> lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -O2 scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -O3 >>>>>>> -g scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> PASS->FAIL: gcc.target/microblaze/others/string_cst2_gpopt.c >>>>>>> -Os scan-assembler lwi\tr([0-9]|[1-2][0-9]|3[0-1]),r13 >>>>>>> >>>>>>> the 'gcc.dg/uninit-19.c ' already fails with -fPIE, and for the >>>>>>> others in microblaze, >>>>>>> expectation is r0 or r13 as a base register which is not the case >>>>>>> here 'r20', and these tests also fails with -fPIE. >>>>>>> Moreover, the test cases that failed due 'unresolved >>>>>>> GLOBAL_OFFSET_TABLE' now pass as we do not have GOT in data text >>>>>>> relative. >>>>>>> >>>>>>> Attached the compare output of the scripit with verbosity 2. >>>>>>> Please tell me if any adjustments needed or If I need to re-run >>>>>>> nything. >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> >>>>>>> On Tue, Mar 13, 2018 at 10:44 PM, Michael Eager <eager@eagerm.com >>>>>>> <mailto:eager@eagerm.com>> wrote: >>>>>>> >>>>>>> On 03/13/18 00:56, Andrew Sadek wrote: >>>>>>> >>>>>>> Ok, so you mean with '-fPIC -mpic-data-text-relative' as >>>>>>> I >>>>>>> do in my test case ? >>>>>>> If all is Ok, execution and compilation shall ideally >>>>>>> pass >>>>>>> for the test cases. >>>>>>> >>>>>>> >>>>>>> Correct. >>>>>>> >>>>>>> I want to make sure of two things: >>>>>>> -- Your patch doesn't break anything (i.e., cause a >>>>>>> regression) when >>>>>>> you don't use the options. This seems complete. >>>>>>> -- Your patch works as intended when you do use the >>>>>>> options. >>>>>>> >>>>>>> But I have noticed that there are some output pattern >>>> >>>> checks >>>>>>> >>>>>>> done in some test cases and this may fail since the >>>>>>> output >>>>>>> assembly is different, >>>>>>> anyway I shall give it a try and send you the results >>>>>>> with >>>>>>> the new options. >>>>>>> >>>>>>> >>>>>>> There should be no target dependencies in the generic GCC >>>> >>>> tests. >>>>>>> >>>>>>> Different instruction patterns which generate the correct >>>>>>> results should >>>>>>> not be a problem. >>>>>>> >>>>>>> >>>>>>> -- Michael Eager eager@eagerm.com >>>>>>> <mailto:eager@eagerm.com> >>>>>>> 1960 Park Blvd., Palo Alto, CA 94306 >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Andrew >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Andrew >>>>>> >>>>>> >>>>> >>>> >>>> -- >>>> Michael Eager eager@eagerm.com >>>> 1960 Park Blvd., Palo Alto, CA 94306 >>>> >>> >> >> -- >> Michael Eager eager@eagerm.com >> 1960 Park Blvd., Palo Alto, CA 94306 > > > > -- > > Andrew -- Andrew
Attachment:
gcc.patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |