[llvm] r328400 - Allow FDE references outside the +/-2GB range supported by PC relative

via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 23 18:59:15 PDT 2018


Hi Eric,

The added run lines to the test here are causing the PS4 bots to fail on the test because they do not include the powerpc64le backend. Could you take a look?

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/27264:

FAIL: LLVM :: MC/ELF/cfi-large-model.s (30728 of 39175)
******************** TEST 'LLVM :: MC/ELF/cfi-large-model.s' FAILED ********************
Script:
--
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -large-code-model /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/test/MC/ELF/cfi-large-model.s    -o - | /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/llvm-readobj -s -sd | /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/FileCheck --check-prefix=CHECK-X86 /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/test/MC/ELF/cfi-large-model.s
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/llvm-mc -filetype=obj -triple powerpc64le-linux-gnu -large-code-model /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/test/MC/ELF/cfi-large-model.s    -o - | /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/llvm-readobj -s -sd | /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/FileCheck --check-prefix=CHECK-PPC /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/test/MC/ELF/cfi-large-model.s
--
Exit Code: 2

Command Output (stderr):
--
/home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.obj/bin/llvm-mc: : error: unable to get target for 'powerpc64le--linux-gnu', see --version and --triple.

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/16090:

$ "C:\ps4-buildslave2\llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast\llvm.obj\bin\llvm-mc.EXE" "-filetype=obj" "-triple" "powerpc64le-linux-gnu" "-large-code-model" "C:\ps4-buildslave2\llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast\llvm.src\test\MC\ELF\cfi-large-model.s" "-o" "-"
# command stderr:
C:\ps4-buildslave2\llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast\llvm.obj\bin\llvm-mc.EXE: : error: unable to get target for 'powerpc64le--linux-gnu', see --version and --triple.


Douglas Yung

> -----Original Message-----
> From: llvm-commits [mailto:llvm-commits-bounces at lists.llvm.org] On Behalf Of
> Eric Christopher via llvm-commits
> Sent: Friday, March 23, 2018 17:08
> To: llvm-commits at lists.llvm.org
> Subject: [llvm] r328400 - Allow FDE references outside the +/-2GB range
> supported by PC relative
> 
> Author: echristo
> Date: Fri Mar 23 17:07:38 2018
> New Revision: 328400
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=328400&view=rev
> Log:
> Allow FDE references outside the +/-2GB range supported by PC relative offsets
> for code models other than small/medium. For JIT application, memory layout is
> less controlled and can result in truncations otherwise.
> 
> Patch based on one by Olexa Bilaniuk!
> 
> Modified:
>     llvm/trunk/lib/MC/MCObjectFileInfo.cpp
>     llvm/trunk/test/MC/ELF/cfi-large-model.s
> 
> Modified: llvm/trunk/lib/MC/MCObjectFileInfo.cpp
> URL: http://llvm.org/viewvc/llvm-
> project/llvm/trunk/lib/MC/MCObjectFileInfo.cpp?rev=328400&r1=328399&r2=328400&
> view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCObjectFileInfo.cpp (original)
> +++ llvm/trunk/lib/MC/MCObjectFileInfo.cpp Fri Mar 23 17:07:38 2018
> @@ -292,6 +292,8 @@ void MCObjectFileInfo::initELFMCObjectFi
>    case Triple::mips64el:
>      FDECFIEncoding = dwarf::DW_EH_PE_sdata8;
>      break;
> +  case Triple::ppc64:
> +  case Triple::ppc64le:
>    case Triple::x86_64:
>      FDECFIEncoding = dwarf::DW_EH_PE_pcrel |
>                       (Large ? dwarf::DW_EH_PE_sdata8 :
> dwarf::DW_EH_PE_sdata4);
> 
> Modified: llvm/trunk/test/MC/ELF/cfi-large-model.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/cfi-large-
> model.s?rev=328400&r1=328399&r2=328400&view=diff
> ==============================================================================
> --- llvm/trunk/test/MC/ELF/cfi-large-model.s (original)
> +++ llvm/trunk/test/MC/ELF/cfi-large-model.s Fri Mar 23 17:07:38 2018
> @@ -1,26 +1,49 @@
>  // RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu -large-code-model
> %s \
> -// RUN:   -o - | llvm-readobj -s -sd | FileCheck %s
> +// RUN:   -o - | llvm-readobj -s -sd | FileCheck --check-prefix=CHECK-X86 %s
> +// RUN: llvm-mc -filetype=obj -triple powerpc64le-linux-gnu -large-code-model
> %s \
> +// RUN:   -o - | llvm-readobj -s -sd | FileCheck --check-prefix=CHECK-PPC %s
> 
> -// CHECK:      Section {
> -// CHECK:        Index:
> -// CHECK:        Name: .eh_frame
> -// CHECK-NEXT:   Type: SHT_X86_64_UNWIND
> -// CHECK-NEXT:   Flags [
> -// CHECK-NEXT:     SHF_ALLOC
> -// CHECK-NEXT:   ]
> -// CHECK-NEXT:   Address: 0x0
> -// CHECK-NEXT:   Offset: 0x40
> -// CHECK-NEXT:   Size: 56
> -// CHECK-NEXT:   Link: 0
> -// CHECK-NEXT:   Info: 0
> -// CHECK-NEXT:   AddressAlignment: 8
> -// CHECK-NEXT:   EntrySize: 0
> -// CHECK-NEXT:   SectionData (
> -// CHECK-NEXT:     0000: 14000000 00000000 017A5200 01781001
> |.........zR..x..|
> -// CHECK-NEXT:     0010: 1C0C0708 90010000 1C000000 1C000000
> |................|
> -// CHECK-NEXT:     0020: 00000000 00000000 00000000 00000000
> |................|
> -// CHECK-NEXT:     0030: 00000000 00000000                    |........|
> -// CHECK-NEXT:   )
> +// CHECK-X86:      Section {
> +// CHECK-X86:        Index:
> +// CHECK-X86:        Name: .eh_frame
> +// CHECK-X86-NEXT:   Type: SHT_X86_64_UNWIND
> +// CHECK-X86-NEXT:   Flags [
> +// CHECK-X86-NEXT:     SHF_ALLOC
> +// CHECK-X86-NEXT:   ]
> +// CHECK-X86-NEXT:   Address: 0x0
> +// CHECK-X86-NEXT:   Offset: 0x40
> +// CHECK-X86-NEXT:   Size: 56
> +// CHECK-X86-NEXT:   Link: 0
> +// CHECK-X86-NEXT:   Info: 0
> +// CHECK-X86-NEXT:   AddressAlignment: 8
> +// CHECK-X86-NEXT:   EntrySize: 0
> +// CHECK-X86-NEXT:   SectionData (
> +// CHECK-X86-NEXT:     0000: 14000000 00000000 017A5200 01781001
> |.........zR..x..|
> +// CHECK-X86-NEXT:     0010: 1C0C0708 90010000 1C000000 1C000000
> |................|
> +// CHECK-X86-NEXT:     0020: 00000000 00000000 00000000 00000000
> |................|
> +// CHECK-X86-NEXT:     0030: 00000000 00000000                    |........|
> +// CHECK-X86-NEXT:   )
> +
> +// CHECK-PPC: Section {
> +// CHECK-PPC:  Index:
> +// CHECK-PPC:  Name: .eh_frame
> +// CHECK-PPC-NEXT:   Type: SHT_PROGBITS
> +// CHECK-PPC-NEXT:   Flags [
> +// CHECK-PPC-NEXT:     SHF_ALLOC
> +// CHECK-PPC-NEXT:   ]
> +// CHECK-PPC-NEXT:   Address: 0x0
> +// CHECK-PPC-NEXT:   Offset: 0x40
> +// CHECK-PPC-NEXT:   Size: 48
> +// CHECK-PPC-NEXT:   Link: 0
> +// CHECK-PPC-NEXT:   Info: 0
> +// CHECK-PPC-NEXT:   AddressAlignment: 8
> +// CHECK-PPC-NEXT:   EntrySize: 0
> +// CHECK-PPC-NEXT:   SectionData (
> +// CHECK-PPC-NEXT:     0000: 10000000 00000000 017A5200 04784101
> |.........zR..xA.|
> +// CHECK-PPC-NEXT:     0010: 1C0C0100 18000000 18000000 00000000
> |................|
> +// CHECK-PPC-NEXT:     0020: 00000000 00000000 00000000 00000000
> |................|
> +// CHECK-PPC-NEXT:   )
> +// CHECK-PPC-NEXT: }
> 
>  f:
>      .cfi_startproc
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list