Fwd: [RFC, PowerPC, Darwin] Clean up generation of ha16() / lo16() markers

Don Crandall macrxnapa at gmail.com
Wed May 15 18:58:12 PDT 2013


On 5/15/13 6:38 PM, David Fang wrote:
> Hal, Ulrich,
>
> Full llvm tests finished, and I did find 3 new failures:
>
> FAIL: LLVM :: DebugInfo/dwarf-public-names.ll (4448 of 9018)
> ******************** TEST 'LLVM :: DebugInfo/dwarf-public-names.ll' 
> FAILED *****
> ***************
> Script:
> -- 
> gtimeout 5m /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./llc 
> -generat
> e-dwarf-pubnames -filetype=obj -o 
> /Volumes/Isolde/builds/LLVM/gcc40-cmake-build/
> test/DebugInfo/Output/dwarf-public-names.ll.tmp.o < 
> /Volumes/Isolde/sources/LLVM
> -svn/llvm.git/test/DebugInfo/dwarf-public-names.ll
> gtimeout 5m 
> /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./llvm-dwarfdu
> mp -debug-dump=pubnames 
> /Volumes/Isolde/builds/LLVM/gcc40-cmake-build/test/Debug
> Info/Output/dwarf-public-names.ll.tmp.o | 
> /Users/fang/local/src/LLVM-svn/gcc40-c
> make-build/bin/./FileCheck 
> /Volumes/Isolde/sources/LLVM-svn/llvm.git/test/DebugI
> nfo/dwarf-public-names.ll
> -- 
> Exit Code: 1
> Command Output (stderr):
> -- 
> LLVM ERROR: expected relocatable expression
> ******************** TEST 'LLVM :: DebugInfo/namespace.ll' FAILED 
> **************
> ******
> Script:
> -- 
> gtimeout 5m /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./llc 
> -O0 -fil
> etype=obj < 
> /Volumes/Isolde/sources/LLVM-svn/llvm.git/test/DebugInfo/namespace.l
> l > 
> /Volumes/Isolde/builds/LLVM/gcc40-cmake-build/test/DebugInfo/Output/namespac
> e.ll.tmp
> gtimeout 5m 
> /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./llvm-dwarfdu
> mp 
> /Volumes/Isolde/builds/LLVM/gcc40-cmake-build/test/DebugInfo/Output/namespace
> .ll.tmp | 
> /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./FileCheck /Volu
> mes/Isolde/sources/LLVM-svn/llvm.git/test/DebugInfo/namespace.ll
> -- 
> Exit Code: 1
> Command Output (stderr):
> -- 
> LLVM ERROR: expected relocatable expression
> -- 
>
> ********************
> FAIL: LLVM :: DebugInfo/two-cus-from-same-file.ll (4462 of 9018)
> ******************** TEST 'LLVM :: 
> DebugInfo/two-cus-from-same-file.ll' FAILED *
> *******************
> Script:
> -- 
> gtimeout 5m /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./llc 
> /Volumes
> /Isolde/sources/LLVM-svn/llvm.git/test/DebugInfo/two-cus-from-same-file.ll 
> -o /V
> olumes/Isolde/builds/LLVM/gcc40-cmake-build/test/DebugInfo/Output/two-cus-from-s 
>
> ame-file.ll.tmp -filetype=obj -O0
> gtimeout 5m 
> /Users/fang/local/src/LLVM-svn/gcc40-cmake-build/bin/./llvm-dwarfdu
> mp -debug-dump=info 
> /Volumes/Isolde/builds/LLVM/gcc40-cmake-build/test/DebugInfo
> /Output/two-cus-from-same-file.ll.tmp | 
> /Users/fang/local/src/LLVM-svn/gcc40-cma
> ke-build/bin/./FileCheck 
> /Volumes/Isolde/sources/LLVM-svn/llvm.git/test/DebugInf
> o/two-cus-from-same-file.ll
> -- 
> Exit Code: 1
> Command Output (stderr):
> -- 
> LLVM ERROR: expected relocatable expression
> -- 
>
> ********************
>
> My branch is currently sync'd to r181825.
> Is there something newer on trunk that might address this?
> If so, what's the minumum revision I should re-merge from?
>
> Fang
>
>
>> Results sooner than expected:
>> Applying Ulrich's patches against the powerpc-darwin8 branch, the 
>> CodeGen/PowerPC tests (375) came clean, as did MC/PowerPC.
>>
>> % bin/llvm-lit -s -v test/CodeGen/PowerPC
>> Testing Time: 156.69s
>>   Expected Passes    : 372
>>   Expected Failures  : 3
>>
>> % bin/llvm-lit -s -v test/MC/PowerPC
>> Testing Time: 3.86s
>>   Expected Passes    : 11
>>
>> Is that good enough, or do you want a full test run?  (I'll start one 
>> now.)
>>
>> Fang
>>
>>>  Can you please test this on your Darwin system?
>>>
>>>  Thanks again,
>>>  Hal
>>>
>>>  ----- Forwarded Message -----
>>>  From: "Ulrich Weigand" <Ulrich.Weigand at de.ibm.com>
>>>  To: llvm-commits at cs.uiuc.edu
>>>  Cc: "Hal Finkel" <hfinkel at anl.gov>
>>>  Sent: Wednesday, May 15, 2013 11:01:58 AM
>>>  Subject: [RFC, PowerPC, Darwin] Clean up generation of ha16() / lo16()
>>>  markers
>>>
>>>
>>>  Hello,
>>>
>>>  when targeting the Darwin assembler, we need to generate markers 
>>> ha16()
>>>  and
>>>  lo16() to designate the high and low parts of a (symbolic) immediate.
>>>  This
>>>  is necessary not just for plain symbols, but also for certain symbolic
>>>  expression, typically along the lines of ha16(A - B).  The latter 
>>> doesn't
>>>  work when simply using VariantKind flags on the symbol reference.
>>>
>>>  This is why the current back-end used hacks (explicitly called out 
>>> as such
>>>  via multiple FIXMEs) in the symbolLo/symbolHi print methods. I'd 
>>> like to
>>>  get rid of this special treatment as a first step towards getting 
>>> rid of
>>>  symbolLo/symbolHi itself.  This is interesting because it will allow
>>>  non-standard (but legal) use of the @l and @hi markers, e.g. to do
>>>  "lis ..., symbol at l"  (which is valid if unusual assembler, but will 
>>> not be
>>>  handled correctly by the llvm assembler right now).
>>>
>>>  The attached patch uses target-defined MCExpr codes to represent the
>>>  Darwin
>>>  ha16/lo16 constructs, following along the lines of the equivalent 
>>> solution
>>>  used by the ARM back end to handle their :upper16: / :lower16: 
>>> markers.
>>>  This allows us to get rid of special handling both in the
>>>  symbolLo/symbolHi
>>>  print method and in the common code MCExpr::print routine. Instead, 
>>> the
>>>  ha16 / lo16 markers are printed simply in a custom print routine 
>>> for the
>>>  target MCExpr types.
>>>
>>>  I don't have a live Darwin system to test on, but the Darwin assembler
>>>  tests in the test suite all still pass.
>>>
>>>  Does this look reasonable?
>>>
>>>  Bye,
>>>  Ulrich
>>>
>>>  (See attached file: diff-reloc-mcexpr)
>>
>>
>
Good evening,

On Darwin9 I get the same failures without adding Ulrich's patch. I 
build trunk with gcc 4.8 or 4.7.

Ulrichs' patch will be added to my G5 tree and rebuilt as soon as I 
finish the current unittesting with svn r181914, currently at ~57% on 
the G5/Darwin machine.

The patch has also been applied to a trunk build on a PPC linux (Ubuntu) 
build I began within the last hour. It is currently @ ~20%. Last test 
results showed the exact failures indicated by David. Will have more (or 
detailed) information for you later this evening.

Best regards
Don



More information about the llvm-commits mailing list