1303231Sdim//===---- BDCE.cpp - Bit-tracking dead code elimination ---------*- C++ -*-===// 2303231Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6303231Sdim// 7303231Sdim//===----------------------------------------------------------------------===// 8303231Sdim// 9303231Sdim// This file implements the Bit-Tracking Dead Code Elimination pass. Some 10303231Sdim// instructions (shifts, some ands, ors, etc.) kill some of their input bits. 11303231Sdim// We track these dead bits and remove instructions that compute only these 12303231Sdim// dead bits. 13303231Sdim// 14303231Sdim//===----------------------------------------------------------------------===// 15303231Sdim 16303231Sdim#ifndef LLVM_TRANSFORMS_SCALAR_BDCE_H 17303231Sdim#define LLVM_TRANSFORMS_SCALAR_BDCE_H 18303231Sdim 19303231Sdim#include "llvm/IR/Function.h" 20303231Sdim#include "llvm/IR/PassManager.h" 21303231Sdim 22303231Sdimnamespace llvm { 23303231Sdim 24303231Sdim// The Bit-Tracking Dead Code Elimination pass. 25303231Sdimstruct BDCEPass : PassInfoMixin<BDCEPass> { 26303231Sdim PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); 27303231Sdim}; 28303231Sdim} 29303231Sdim 30303231Sdim#endif // LLVM_TRANSFORMS_SCALAR_BDCE_H 31