[LLVMdev] RFC: TileGX, a new backend for Tilera's many core processor

Jiong Wang jiwang at tilera.com
Fri Mar 1 00:50:49 PST 2013


On 03/01/2013 03:34 PM, Jiong Wang wrote:
> On 03/01/2013 02:57 PM, Hal Finkel wrote:
> Hi Hal,
>
>   thanks for feedback.
>> Jiong, I am happy to see the Tile backend being offered for upstream 
>> inclusion. Among other things, in the long run, this may help inform 
>> and motivate many-core capabilities in LLVM.
>>
>> First, can you elaborate on the future maintenance and development 
>> plans for the target code? Do you plan to add SIMD support? Atomic 
>> memory operations?
>       yes, currently we lack of old JIT support (I was thinking MCJIT 
> will be the future, but from the mailinglist archive, it seems old JIT 
> is still necessary), SIMD intrinsic support etc. all these will be 
> supported next.

         ===>  besides these, for the next step, we will support more 
peephole optimizations, optimize float operation using  special hardware 
instruction, implement a VLIW aware MI schduler etc, to improve 
instruction level parallelism.
                    And I guess it will be interesting for how to 
support higher level parallelism using TileGX's 72 core :)
>
>       As some of the llvm modules are in active development, for 
> example MC Layer, we want to return code to community repository 
> first, so that it will be easy to keep pace with llvm main tree.
>>
>> Will you be able to setup a buildbot on this architecture? If so, can 
>> it be connected to the public system?
>       yes, I guess it's OK to setup a tilegx buildbot with connection 
> to public system. I will confirm this with the company.
>>
>> On the patch itself:
>>
>>   1. There are still a few places where there is commented-out code 
>> or #if 0 blocks; these should be removed (or replaced with real 
>> comments as appropriate).
>       thanks, I will fix these things.
>>
>>   2. There are no regression tests -- using the test-suite is 
>> obviously useful, but targeted regression tests are essential.
>        yes, regression tests will be added later.
>>
>> You say that there are unexpected failures in the regression tests 
>> and in the test suite. Do you understand these?
>        yes, I have done investigation on these failures.
>
>        regression (44 failures)
>        ===
>          20: caused JITTests failures, we lack old jit support
>          2:
>             MCJIT/test-common-symbols-remote.ll
>             MCJIT/test-fp-no-external-funcs-remote.ll
>
>         the other 20 are mostly under Clang:: Tooling (these testcases 
> seems to be added in this week) & some debuginfo testcases,  I will 
> clean up them later.
>
>
>        test-suite (17 failures)
>        ======
>            1 of them are compile stage failures
>             ===
>                   MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4
>                   the reason is tilegx do not support some c99 float 
> rounding & exceptions
>                   we lack the support of some flag like FE_DIVBYZERO 
> etc, for fegetexceptflag.
>
>            16 of them are runtime failures.
>             ===
>                   actually, I compare all these failures with our gcc 
> output, it's the same.
>                   nearly all of them are caused by float point 
> precision issue, for example,
>
>  MultiSource/Applications/sqlite3/
>
>  ...
>  6|496148.333333333
> -6|496234.333333333  <=== expected output & x86_64 result
> +6|496234.333333334  <=== tilegx gcc/llvm result
>  8|496373.0
>  8|496448.375
>  1|496587.0
> -6|496647.333333333
> +6|496647.333333334
>  ...
>
> ---
> Regards,
> Jiong
>
>>
>>   -Hal
>>
>>> TILE-Gx is a VLIW architecture with 64-bit registers, 64-bit address
>>> space,
>>> and 64-bit instructions. TILE-Gx has load-store architecture ISAs.
>>>
>>> More information on the architectures is available at
>>> http://www.tilera.com/scm/docs/index.html.
>>>
>>> the attached patches contains the following main features for tilegx
>>> backend:
>>>
>>> 1. general function.
>>> 2. PIC/TLS/JumpTable.
>>> 3. Instructoin Bundling for VLIW.
>>> 4. Basic support for Asm Parser.
>>> 5. MC Layer (aware of VLIW), MCJIT support.
>>>
>>> I've run the regression test and standalone test-suite natively on
>>> TILE-Gx silicon. The
>>> test results are:
>>>
>>> regression
>>> ---
>>> Expected Passes : 13218
>>> Expected Failures : 78
>>> Unsupported Tests : 68
>>> Unexpected Failures: 44
>>>
>>> test-suite
>>> ---
>>> Expected Passes : 949
>>> Unexpected Failures: 17
>>>
>>> the llvm patch is against:
>>>
>>> commit 5e812139690ce077d568ef6559992b2cf74eb536
>>> Author: Evgeniy Stepanov <eugeni.stepanov at gmail.com>
>>> Date: Thu Feb 28 11:25:14 2013 +0000
>>>
>>> [msan] Implement sanitize_memory attribute.
>>>
>>> the clang patch is against:
>>>
>>> commit a4d4621b206f941cc58d9d0bc7c67a8e705c9d49
>>> Author: Daniel Jasper <djasper at google.com>
>>> Date: Thu Feb 28 11:05:57 2013 +0000
>>>
>>> Improve formatting of #defines.
>>>
>>> the test-suite patch is against:
>>>
>>> commit 8c1ab3b660e67b74421d657408167b1345188f8d
>>> Author: Duncan Sands <baldrick at free.fr>
>>> Date: Sun Feb 17 15:21:11 2013 +0000
>>>
>>> Use LLVMCC_EMITIR_FLAG rather than -emit-llvm
>>>
>>>
>>> please review, looking forward to your feedback.
>>>
>>> thanks.
>>>
>>> ---
>>> Regards,
>>> Jiong
>>> Tilera Corporation.
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>>
>
>


-- 
Regards,
Jiong. Wang
Tilera Corporation.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130301/50273621/attachment.html>


More information about the llvm-dev mailing list