diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-12-01 03:42:51 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-12-01 03:42:51 +0000 |
| commit | 084b3a47d3e09b20fc20a307a58e17e3ee802a11 (patch) | |
| tree | 97d7d1342d45b551e8714729780a8d126170b3d9 /llvm/lib/System/Unix/TimeValue.inc | |
| parent | 8628645e94791a399533ee8b738ca13e6b224d90 (diff) | |
| download | bcm5719-llvm-084b3a47d3e09b20fc20a307a58e17e3ee802a11.tar.gz bcm5719-llvm-084b3a47d3e09b20fc20a307a58e17e3ee802a11.zip | |
Change instcombine to use FoldPHIArgGEPIntoPHI to fold two operand PHIs
instead of using FoldPHIArgBinOpIntoPHI. In addition to being more
obvious, this also fixes a problem where instcombine wouldn't merge two
phis that had different variable indices. This prevented instcombine
from factoring big chunks of code in 403.gcc. For example:
insn_cuid.exit:
- %tmp336 = load i32** @uid_cuid, align 4
- %tmp337 = getelementptr %struct.rtx_def* %insn_addr.0.ph.i, i32 0, i32 3
- %tmp338 = bitcast [1 x %struct.rtunion]* %tmp337 to i32*
- %tmp339 = load i32* %tmp338, align 4
- %tmp340 = getelementptr i32* %tmp336, i32 %tmp339
br label %bb62
bb61:
- %tmp341 = load i32** @uid_cuid, align 4
- %tmp342 = getelementptr %struct.rtx_def* %insn, i32 0, i32 3
- %tmp343 = bitcast [1 x %struct.rtunion]* %tmp342 to i32*
- %tmp344 = load i32* %tmp343, align 4
- %tmp345 = getelementptr i32* %tmp341, i32 %tmp344
br label %bb62
bb62:
- %iftmp.62.0.in = phi i32* [ %tmp345, %bb61 ], [ %tmp340, %insn_cuid.exit ]
+ %insn.pn2 = phi %struct.rtx_def* [ %insn, %bb61 ], [ %insn_addr.0.ph.i, %insn_cuid.exit ]
+ %tmp344.pn.in.in = getelementptr %struct.rtx_def* %insn.pn2, i32 0, i32 3
+ %tmp344.pn.in = bitcast [1 x %struct.rtunion]* %tmp344.pn.in.in to i32*
+ %tmp341.pn = load i32** @uid_cuid
+ %tmp344.pn = load i32* %tmp344.pn.in
+ %iftmp.62.0.in = getelementptr i32* %tmp341.pn, i32 %tmp344.pn
%iftmp.62.0 = load i32* %iftmp.62.0.in
llvm-svn: 60325
Diffstat (limited to 'llvm/lib/System/Unix/TimeValue.inc')
0 files changed, 0 insertions, 0 deletions

