Skip to content

Instantly share code, notes, and snippets.

#include <stdio.h>
#include <string.h>
#include <queue>
#include <string>
using namespace std;
#define mp make_pair
#define pb push_back
int dp[100][100], done[100];
@james0zan
james0zan / llvm-bloat.md
Last active June 8, 2018 09:16
Removing Redundant Operations with LLVM

Removing Redundant Operations with LLVM

Summary

An operation is classified as redundant if either (a) it is unneeded thus simply omitting the execution of it will not change the output of the program; or (b) it is repeated, which means the result of this operation is the same as a former run.

The prevalent existence of these redundant operations is a main cause of performance bugs [1].

In this project, we intend to detect these bugs by 1) identifying the redundant operations on instruction granularity via dynamic slicing; and then 2) aggregating them into higher-level blocks that worth fixing.