[llvm] r207969 - Fix test from r207966 and add a comment there.

Eric Christopher echristo at gmail.com
Mon May 5 11:01:48 PDT 2014


On Mon, May 5, 2014 at 10:52 AM, Juergen Ributzka <juergen at apple.com> wrote:
> Sounds good. Maybe something like constant-hoisting-shift-immediate.ll might be better, because it is all about shifts after all ;-)
>

+1 :)

-eric

> -Juergen
>
> On May 5, 2014, at 10:40 AM, Michael Zolotukhin <mzolotukhin at apple.com> wrote:
>
>> Hi Juergen,
>>
>> I would move it to CodeGen/X86/const-hoisting-large-imm.ll then. Any suggestions/objections for this name?
>>
>> We already have a test that checks LLVM IR - large-immediate.ll. There we check that constant hoisting didn’t happen. The new case is intended to show why the old behavior is bad - if constant hoisting occur we get much worse code, than just 2 instructions (mov+ret). In future one might ask ‘Why not to allow constant hoisting for shifts?’ and this new test should explain why.
>>
>> Michael
>>
>> On May 5, 2014, at 9:18 PM, Juergen Ributzka <juergen at apple.com> wrote:
>>
>>> HI Michael,
>>>
>>> I would either move this test to the X86 CodeGen test folder or add an additional “opt” test line that checks for the expected/not expected LLVM IR.
>>>
>>> Cheers,
>>> Juergen
>>>
>>> On May 5, 2014, at 7:46 AM, Michael Zolotukhin <mzolotukhin at apple.com> wrote:
>>>
>>>> Author: mzolotukhin
>>>> Date: Mon May  5 09:46:53 2014
>>>> New Revision: 207969
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=207969&view=rev
>>>> Log:
>>>> Fix test from r207966 and add a comment there.
>>>>
>>>> Modified:
>>>>  llvm/trunk/test/Transforms/ConstantHoisting/X86/large-immediate-2.ll
>>>>
>>>> Modified: llvm/trunk/test/Transforms/ConstantHoisting/X86/large-immediate-2.ll
>>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/ConstantHoisting/X86/large-immediate-2.ll?rev=207969&r1=207968&r2=207969&view=diff
>>>> ==============================================================================
>>>> --- llvm/trunk/test/Transforms/ConstantHoisting/X86/large-immediate-2.ll (original)
>>>> +++ llvm/trunk/test/Transforms/ConstantHoisting/X86/large-immediate-2.ll Mon May  5 09:46:53 2014
>>>> @@ -1,8 +1,10 @@
>>>> ; RUN: llc < %s -O3 -march=x86-64 |FileCheck %s
>>>> define i64 @foo(i1 %z, i192* %p, i192* %q)
>>>> {
>>>> -; CHECK: movq    16(%rsi), %rax
>>>> -; CHECK-NEXT: retq
>>>> +; If const 128 is hoisted to a variable, then in basic block L_val2 we would
>>>> +; have %lshr2 = lshr i192 %data2, %const, and the definition of %const would
>>>> +; be in another basic block. As a result, a very inefficient code might be
>>>> +; produced. Here we check that this doesn't occur.
>>>> entry:
>>>> %data1 = load i192* %p, align 8
>>>> %lshr1 = lshr i192 %data1, 128
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list