Fwd: [RFC, PowerPC, Darwin] Clean up generation of ha16() / lo16() markers
David Fang
fang at csl.cornell.edu
Wed May 15 18:38:34 PDT 2013
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)
>
>
--
David Fang
http://www.csl.cornell.edu/~fang/
More information about the llvm-commits
mailing list