Lines Matching full:llvm
26 #include <llvm-c/Core.h>
27 #include <llvm/Analysis/TargetLibraryInfo.h>
28 #include <llvm/IR/IRBuilder.h>
29 #include <llvm/IR/LegacyPassManager.h>
30 #include <llvm/Target/TargetMachine.h>
31 #include <llvm/MC/MCSubtargetInfo.h>
32 #include <llvm/Support/CommandLine.h>
33 #include <llvm/Transforms/IPO.h>
38 * The LLVM headers need to all be included before any Mesa header,
50 llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine *>(tm); in ac_is_llvm_processor_supported()
56 llvm::cl::ResetAllOptionOccurrences(); in ac_reset_llvm_all_options_occurences()
61 llvm::Argument *A = llvm::unwrap<llvm::Argument>(val); in ac_add_attr_dereferenceable()
62 A->addAttr(llvm::Attribute::getWithDereferenceableBytes(A->getContext(), bytes)); in ac_add_attr_dereferenceable()
67 llvm::Argument *A = llvm::unwrap<llvm::Argument>(val); in ac_add_attr_alignment()
68 A->addAttr(llvm::Attribute::getWithAlignment(A->getContext(), llvm::Align(bytes))); in ac_add_attr_alignment()
73 llvm::Argument *A = llvm::unwrap<llvm::Argument>(arg); in ac_is_sgpr_param()
74 llvm::AttributeList AS = A->getParent()->getAttributes(); in ac_is_sgpr_param()
76 return AS.hasParamAttr(ArgNo, llvm::Attribute::InReg); in ac_is_sgpr_param()
81 llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine *>(tm); in ac_create_module()
84 llvm::unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple()); in ac_create_module()
85 llvm::unwrap(module)->setDataLayout(TM->createDataLayout()); in ac_create_module()
93 llvm::FastMathFlags flags; in ac_create_builder()
111 llvm::unwrap(builder)->setFastMathFlags(flags); in ac_create_builder()
121 auto *b = llvm::unwrap(ctx->builder); in ac_enable_signed_zeros()
122 llvm::FastMathFlags flags = b->getFastMathFlags(); in ac_enable_signed_zeros()
135 auto *b = llvm::unwrap(ctx->builder); in ac_disable_signed_zeros()
136 llvm::FastMathFlags flags = b->getFastMathFlags(); in ac_disable_signed_zeros()
146 new llvm::TargetLibraryInfoImpl(llvm::Triple(triple))); in ac_create_target_library_info()
151 delete reinterpret_cast<llvm::TargetLibraryInfoImpl *>(library_info); in ac_dispose_target_library_info()
156 struct raw_memory_ostream : public llvm::raw_pwrite_stream {
218 /* The LLVM compiler is represented as a pass manager containing passes for
223 llvm::legacy::PassManager passmgr; /* list of passes */
232 llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine *>(tm); in ac_create_llvm_passes()
235 llvm::CGFT_ObjectFile)) { in ac_create_llvm_passes()
252 p->passmgr.run(*llvm::unwrap(module)); in ac_compile_module_to_elf()
259 llvm::unwrap(passmgr)->add(llvm::createBarrierNoopPass()); in ac_llvm_add_barrier_noop_pass()
265 llvm::AtomicRMWInst::BinOp binop; in ac_build_atomic_rmw()
268 binop = llvm::AtomicRMWInst::Xchg; in ac_build_atomic_rmw()
271 binop = llvm::AtomicRMWInst::Add; in ac_build_atomic_rmw()
274 binop = llvm::AtomicRMWInst::Sub; in ac_build_atomic_rmw()
277 binop = llvm::AtomicRMWInst::And; in ac_build_atomic_rmw()
280 binop = llvm::AtomicRMWInst::Nand; in ac_build_atomic_rmw()
283 binop = llvm::AtomicRMWInst::Or; in ac_build_atomic_rmw()
286 binop = llvm::AtomicRMWInst::Xor; in ac_build_atomic_rmw()
289 binop = llvm::AtomicRMWInst::Max; in ac_build_atomic_rmw()
292 binop = llvm::AtomicRMWInst::Min; in ac_build_atomic_rmw()
295 binop = llvm::AtomicRMWInst::UMax; in ac_build_atomic_rmw()
298 binop = llvm::AtomicRMWInst::UMin; in ac_build_atomic_rmw()
301 binop = llvm::AtomicRMWInst::FAdd; in ac_build_atomic_rmw()
307 unsigned SSID = llvm::unwrap(ctx->context)->getOrInsertSyncScopeID(sync_scope); in ac_build_atomic_rmw()
308 return llvm::wrap(llvm::unwrap(ctx->builder) in ac_build_atomic_rmw()
309 ->CreateAtomicRMW(binop, llvm::unwrap(ptr), llvm::unwrap(val), in ac_build_atomic_rmw()
311 llvm::MaybeAlign(0), in ac_build_atomic_rmw()
313 llvm::AtomicOrdering::SequentiallyConsistent, SSID)); in ac_build_atomic_rmw()
319 unsigned SSID = llvm::unwrap(ctx->context)->getOrInsertSyncScopeID(sync_scope); in ac_build_atomic_cmp_xchg()
320 return llvm::wrap(llvm::unwrap(ctx->builder) in ac_build_atomic_cmp_xchg()
321 ->CreateAtomicCmpXchg(llvm::unwrap(ptr), llvm::unwrap(cmp), in ac_build_atomic_cmp_xchg()
322 llvm::unwrap(val), in ac_build_atomic_cmp_xchg()
324 llvm::MaybeAlign(0), in ac_build_atomic_cmp_xchg()
326 llvm::AtomicOrdering::SequentiallyConsistent, in ac_build_atomic_cmp_xchg()
327 llvm::AtomicOrdering::SequentiallyConsistent, SSID)); in ac_build_atomic_cmp_xchg()