[llvm-commits] Final SwitchInst for PR1255: case-ranges.

Duncan Sands baldrick at free.fr
Mon Jul 16 05:36:35 PDT 2012


Hi Stepan, you only posted this yesterday, please be more patient!

Ciao, Duncan.

On 16/07/12 10:46, Stepan Dyatkovskiy wrote:
> ping.
>
> Stepan Dyatkovskiy wrote:
>> Hi all.
>> Please find the patch that converts current SwitchInst into one that
>> supports case-ranges. This patch is not compilable, since I removed all
>> backward compatibility layer. This is how I see the final SwitchInst.
>>
>> Main features
>>    - Case value is the subset of integers, based on APInt values
>> (implemented as IntegersSubset). IntegersSubset uses packed data
>> representation. It has two collections: flat numbers collection, and
>> collection of pairs with indices (pointers) to the flat numbers collection.
>>    - To construct/modify subsets for SwitchInst IntegersSubsetMapping was
>> introduced. It uses unpacked data representation and stores SwitchInst
>> data as set of clusters. Cluster is integer range + successor.
>>    - Case value removed from instruction operands list. We needn't
>> User-Use concept here, since it is just a case value, it will always
>> constant, and case value couldn't reused with another instructions/values.
>>
>> P.S.:  Patch contains a lot of changes. Probably you want to apply it
>> locally and look at final instruction class.
>>
>> P.S.2: I also have patch with backward compatibility level. It is
>> compilable and passes regression tests and test-suite tests.
>>
>> Thanks!
>>
>> -Stepan.
>>
>>
>> _______________________________________________
>> 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