All Downloads are FREE. Search and download functionalities are using the official Maven repository.

Lib.Krakatau.ssa.ssa_jumps.ifcmp.pyc Maven / Gradle / Ivy

There is a newer version: 1.1
Show newest version
?
?HRc@s`ddlmZddlmZddlmZmZddlmZdefd??YZ	dS(	i(tBaseJumpi(t	ssa_types(t
IntConstrainttObjectConstraint(tGototIfcBsneZidd6dd6dd6dd6dd6dd6Zd?Zd?Zd?Zd	?Zd
?Zd?ZRS(tneteqtgetlttletgtcCsZtt|?j||?|dks+t?||_||_|djtjk|_	dS(	NRRR	RRR
i(seqsnesltsgesgtsle(
tsuperRt__init__tAssertionErrortcmpt
successorsttypeRt
SSA_OBJECTtisObj(tselftparentRRt	arguments((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pyR
	s
		cCs/g|jD]}|j||?^q
|_dS(N(Rtget(Rt	blockDicttkey((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pyt
replaceBlocksscCs|jS(N(R(R((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pytgetNormalSuccessorsscCsut|j?}x!|D]\}}|j|?qWt|?dkrIdSt|?dkrqt|j|j??S|S(Nii(tsetRtremovetlentNoneRRtpop(Rt
pairsToRemovettemptchildtt((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pytreduceSuccessorsscCsg}xi|jD]^}|j|tf?}|||?}d|kr|dksXt?|j|tf?qqW|j|?S(N(NN(RtgetSuccessorConstraintstFalseRRtappendR%(Rtxtyt
impossibleR#tfunctresults((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pytconstrainJumps"scs}|\}}|tkst?||jdkrAtj|jn|j?|jrf?fd?}|S?fd?}|SdS(Nics?|dks|dkrdS?dkrA|j|?}||fS||}}|j?r?|j}tj|j|j|jdt	?}n|j?r?|j}tj|j|j|jdt	?}n||fSdS(NRtnonnull(NN(
RtjointisConstNullttypesRtfromTopstenvtsuperstexacttTrue(R)R*tztx2ty2tyttxt(tcmp_t(sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pytpropagateConstraints_obj2s

	'	'cs?|dks|dkrdS|j|j|j|jf\}}}}?dks^?dkr||||f\}}}}n?dks??dkr?t||d?}t|d|?}n6?dks??dkr?t||?}t||?}n??dkr.t||?}}t||?}}n??dkr?||ko\|ko\|knred	S||kr?||kr?|n|d}||kr?|n|d}n||kr?||kr?|n|d}||kr?|n|d}q?n?dks?dkr/||||f\}}}}n||krStj|j||?nd}||kr}tj|j||?nd}||fS(
NRRR	iR
RR(NN(NN(RtmintmaxRtrangetwidth(R)R*tx1R9ty1R:tcon1tcon2(R=(sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pytpropagateConstraints_intCs8*!'"!**(R'RRRt	oppositesRR(Rt.1tblockR$R>RG((R=sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pyR&-s	,	 (	t__name__t
__module__RHR
RRR%R.R&(((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pyRs0					N(
tbaseRtRtconstraintsRRtgotoRR(((sC/home/alex/projects/github/krakatau/Krakatau/ssa/ssa_jumps/ifcmp.pyts




© 2015 - 2025 Weber Informatics LLC | Privacy Policy