search for: inttopt

Displaying 12 results from an estimated 12 matches for "inttopt".

Did you mean: inttoptr
2013 Nov 12
2
[LLVMdev] sinking address computing in CodeGenPrepare
I wonder why CodeGenPrepare breaks GEP into integer calculations (ptrtoin/add/inttopt) instead of directly sinking the address calculation using GEP into user's block. Thanks, Jun On Nov 12, 2013, at 12:07 PM, Evan Cheng <evan.cheng at apple.com> wrote: > The reason for this is to allow folding of address computation into loads and stores. A lot of modern arch, e.g....
2013 Nov 20
2
[LLVMdev] sinking address computing in CodeGenPrepare
When multiple GEPs or other operations are used for the address calculation, OptimizeMemoryInst() performs address matching and determines a final addressing expression as a simple form (e.g., ptrtoint/add/inttoptr) and sinks it into user's block so that ISel could have better chance to fold address computation into LDRs and STRs. However, OptimizeMemoryInst() seems to do this transformation even when the address calculation derived from a single GEP, resulting in poor alias analysis because GEP is no lo...
2013 Nov 13
0
[LLVMdev] sinking address computing in CodeGenPrepare
On Nov 12, 2013, at 11:24 AM, Junbum Lim <junbums at gmail.com> wrote: > > I wonder why CodeGenPrepare breaks GEP into integer calculations (ptrtoin/add/inttopt) instead of directly sinking the address calculation using GEP into user's block. I believe it's primary for address mode matching where only part of the GEP can be folded (depending on the instruction set). Evan > > Thanks, > Jun > > > On Nov 12, 2013, at 12:07 PM,...
2013 Nov 21
2
[LLVMdev] sinking address computing in CodeGenPrepare
...s at gmail.com> wrote: > > > > > > > When multiple GEPs or other operations are used for the address > > calculation, OptimizeMemoryInst() performs address matching and > > determines a final addressing expression as a simple form (e.g., > > ptrtoint/add/inttoptr) and sinks it into user's block so that ISel > > could have better chance to fold address computation into LDRs and > > STRs. However, OptimizeMemoryInst() seems to do this > > transformation even when the address calculation derived from a > > single GEP, resulting in...
2013 Nov 21
0
[LLVMdev] sinking address computing in CodeGenPrepare
On Nov 20, 2013, at 3:10 PM, Junbum Lim <junbums at gmail.com> wrote: > > > When multiple GEPs or other operations are used for the address calculation, OptimizeMemoryInst() performs address matching and determines a final addressing expression as a simple form (e.g., ptrtoint/add/inttoptr) and sinks it into user's block so that ISel could have better chance to fold address computation into LDRs and STRs. However, OptimizeMemoryInst() seems to do this transformation even when the address calculation derived from a single GEP, resulting in poor alias analysis because GEP is no lo...
2013 Nov 21
3
[LLVMdev] sinking address computing in CodeGenPrepare
...; > >>> > >>> When multiple GEPs or other operations are used for the address > >>> calculation, OptimizeMemoryInst() performs address matching and > >>> determines a final addressing expression as a simple form (e.g., > >>> ptrtoint/add/inttoptr) and sinks it into user's block so that > >>> ISel > >>> could have better chance to fold address computation into LDRs > >>> and > >>> STRs. However, OptimizeMemoryInst() seems to do this > >>> transformation even when the address ca...
2013 Nov 21
0
[LLVMdev] sinking address computing in CodeGenPrepare
...te: >> >>> >>> >>> When multiple GEPs or other operations are used for the address >>> calculation, OptimizeMemoryInst() performs address matching and >>> determines a final addressing expression as a simple form (e.g., >>> ptrtoint/add/inttoptr) and sinks it into user's block so that ISel >>> could have better chance to fold address computation into LDRs and >>> STRs. However, OptimizeMemoryInst() seems to do this >>> transformation even when the address calculation derived from a >>> single GEP, r...
2013 Nov 22
0
[LLVMdev] sinking address computing in CodeGenPrepare
...>> >>>>> When multiple GEPs or other operations are used for the address >>>>> calculation, OptimizeMemoryInst() performs address matching and >>>>> determines a final addressing expression as a simple form (e.g., >>>>> ptrtoint/add/inttoptr) and sinks it into user's block so that >>>>> ISel >>>>> could have better chance to fold address computation into LDRs >>>>> and >>>>> STRs. However, OptimizeMemoryInst() seems to do this >>>>> transformation even when...
2013 Nov 22
2
[LLVMdev] sinking address computing in CodeGenPrepare
...t;>>>> When multiple GEPs or other operations are used for the address >>>>>> calculation, OptimizeMemoryInst() performs address matching and >>>>>> determines a final addressing expression as a simple form (e.g., >>>>>> ptrtoint/add/inttoptr) and sinks it into user's block so that >>>>>> ISel >>>>>> could have better chance to fold address computation into LDRs >>>>>> and >>>>>> STRs. However, OptimizeMemoryInst() seems to do this >>>>>> tran...
2013 Nov 12
0
[LLVMdev] sinking address computing in CodeGenPrepare
...35 > > for.body: > %4 = load double* %zzz, align 8, !tbaa !0 > > TO : > for.body: > %sunkaddr27 = ptrtoint %struct.SS* %a2 to i32 <----- sink address computing into user's block > %sunkaddr28 = add i32 %sunkaddr27, 272 > %sunkaddr29 = inttoptr i32 %sunkaddr28 to double* > %4 = load double* %sunkaddr29, align 8, !tbaa !8 > > > From what I observed, this transformation can cause poor alias analysis results without using GEP. So, I want to see there is any way to avoid this conversion. > > My question is : > 1. W...
2013 Nov 12
2
[LLVMdev] sinking address computing in CodeGenPrepare
...tr inbounds %struct.SS* %a2, i32 0, i32 35 for.body: %4 = load double* %zzz, align 8, !tbaa !0 TO : for.body: %sunkaddr27 = ptrtoint %struct.SS* %a2 to i32 <----- sink address computing into user's block %sunkaddr28 = add i32 %sunkaddr27, 272 %sunkaddr29 = inttoptr i32 %sunkaddr28 to double* %4 = load double* %sunkaddr29, align 8, !tbaa !8 >From what I observed, this transformation can cause poor alias analysis results without using GEP. So, I want to see there is any way to avoid this conversion. My question is : 1. Why do we need to sink address...
2013 Nov 26
0
[LLVMdev] sinking address computing in CodeGenPrepare
...t;> When multiple GEPs or other operations are used for the address >>>>>>> calculation, OptimizeMemoryInst() performs address matching and >>>>>>> determines a final addressing expression as a simple form (e.g., >>>>>>> ptrtoint/add/inttoptr) and sinks it into user's block so that >>>>>>> ISel >>>>>>> could have better chance to fold address computation into LDRs >>>>>>> and >>>>>>> STRs. However, OptimizeMemoryInst() seems to do this >>>&...