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

Juergen Ributzka juergen at apple.com
Mon May 5 10:52:44 PDT 2014


Sounds good. Maybe something like constant-hoisting-shift-immediate.ll might be better, because it is all about shifts after all ;-)

-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
>> 
> 





More information about the llvm-commits mailing list