Lines Matching refs: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>
50 llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine *>(tm);
56 llvm::cl::ResetAllOptionOccurrences();
61 llvm::Argument *A = llvm::unwrap<llvm::Argument>(val);
62 A->addAttr(llvm::Attribute::getWithDereferenceableBytes(A->getContext(), bytes));
67 llvm::Argument *A = llvm::unwrap<llvm::Argument>(val);
68 A->addAttr(llvm::Attribute::getWithAlignment(A->getContext(), llvm::Align(bytes)));
73 llvm::Argument *A = llvm::unwrap<llvm::Argument>(arg);
74 llvm::AttributeList AS = A->getParent()->getAttributes();
76 return AS.hasParamAttr(ArgNo, llvm::Attribute::InReg);
81 llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine *>(tm);
84 llvm::unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple());
85 llvm::unwrap(module)->setDataLayout(TM->createDataLayout());
93 llvm::FastMathFlags flags;
111 llvm::unwrap(builder)->setFastMathFlags(flags);
121 auto *b = llvm::unwrap(ctx->builder);
122 llvm::FastMathFlags flags = b->getFastMathFlags();
135 auto *b = llvm::unwrap(ctx->builder);
136 llvm::FastMathFlags flags = b->getFastMathFlags();
146 new llvm::TargetLibraryInfoImpl(llvm::Triple(triple)));
151 delete reinterpret_cast<llvm::TargetLibraryInfoImpl *>(library_info);
156 struct raw_memory_ostream : public llvm::raw_pwrite_stream {
223 llvm::legacy::PassManager passmgr; /* list of passes */
232 llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine *>(tm);
235 llvm::CGFT_ObjectFile)) {
252 p->passmgr.run(*llvm::unwrap(module));
259 llvm::unwrap(passmgr)->add(llvm::createBarrierNoopPass());
265 llvm::AtomicRMWInst::BinOp binop;
268 binop = llvm::AtomicRMWInst::Xchg;
271 binop = llvm::AtomicRMWInst::Add;
274 binop = llvm::AtomicRMWInst::Sub;
277 binop = llvm::AtomicRMWInst::And;
280 binop = llvm::AtomicRMWInst::Nand;
283 binop = llvm::AtomicRMWInst::Or;
286 binop = llvm::AtomicRMWInst::Xor;
289 binop = llvm::AtomicRMWInst::Max;
292 binop = llvm::AtomicRMWInst::Min;
295 binop = llvm::AtomicRMWInst::UMax;
298 binop = llvm::AtomicRMWInst::UMin;
301 binop = llvm::AtomicRMWInst::FAdd;
307 unsigned SSID = llvm::unwrap(ctx->context)->getOrInsertSyncScopeID(sync_scope);
308 return llvm::wrap(llvm::unwrap(ctx->builder)
309 ->CreateAtomicRMW(binop, llvm::unwrap(ptr), llvm::unwrap(val),
311 llvm::MaybeAlign(0),
313 llvm::AtomicOrdering::SequentiallyConsistent, SSID));
319 unsigned SSID = llvm::unwrap(ctx->context)->getOrInsertSyncScopeID(sync_scope);
320 return llvm::wrap(llvm::unwrap(ctx->builder)
321 ->CreateAtomicCmpXchg(llvm::unwrap(ptr), llvm::unwrap(cmp),
322 llvm::unwrap(val),
324 llvm::MaybeAlign(0),
326 llvm::AtomicOrdering::SequentiallyConsistent,
327 llvm::AtomicOrdering::SequentiallyConsistent, SSID));