12345678910111213141516171819202122232425262728293031323334353637383940 |
- //===- Utils.cpp - llvm-reduce utility functions --------------------------===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- //
- // This file contains some utility functions supporting llvm-reduce.
- //
- //===----------------------------------------------------------------------===//
- #include "Utils.h"
- #include "llvm/IR/Constants.h"
- #include "llvm/IR/GlobalAlias.h"
- #include "llvm/IR/GlobalIFunc.h"
- using namespace llvm;
- extern cl::OptionCategory LLVMReduceOptions;
- cl::opt<bool> llvm::Verbose("verbose",
- cl::desc("Print extra debugging information"),
- cl::init(false), cl::cat(LLVMReduceOptions));
- Value *llvm::getDefaultValue(Type *T) {
- return T->isVoidTy() ? PoisonValue::get(T) : Constant::getNullValue(T);
- }
- bool llvm::hasAliasUse(Function &F) {
- return any_of(F.users(), [](User *U) {
- return isa<GlobalAlias>(U) || isa<GlobalIFunc>(U);
- });
- }
- bool llvm::hasAliasOrBlockAddressUse(Function &F) {
- return any_of(F.users(), [](User *U) {
- return isa<GlobalAlias, GlobalIFunc, BlockAddress>(U);
- });
- }
|