[SCEV] Avoid creating unnecessary SCEVs for SelectInsts.
After 675080a4, we always create SCEVs for all operands of a SelectInst. This can cause notable compile-time regressions compared to the recursive algorithm, which only evaluates the operands if the select is in a form we can create a usable expression. This approach adds additional logic to getOperandsToCreate to only queue operands for selects if we will later be able to construct a usable SCEV. Unfortunately this introduces a bit of coupling between actual SCEV construction for selects and getOperandsToCreate, but I am not sure if there are better alternatives to address the regression mentioned for 675080a4. This doesn't have any notable compile-time impact on CTMark. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D129731
Loading
Please sign in to comment