an analysis of pro le-driven instruction level parallel scheduling with application to super blocks c chekuri , r johnson , r motwani , b natarajan , b proc . 29th ieee/acm int . symp . on microarchitecture , paris ,