Add polyhedral dead code elimination.

Description

Add polyhedral dead code elimination.

This pass eliminates loop iterations that compute results that are not used
later on. This can help e.g. in D, where the default zero-initialization is
often unnecessary if right after new values are assigned to an array.