Intel® Implicit SPMD Program Compiler (Intel® ISPC)  1.13.0
Functions
func.cpp File Reference
#include "func.h"
#include "ctx.h"
#include "expr.h"
#include "llvmutil.h"
#include "module.h"
#include "stmt.h"
#include "sym.h"
#include "type.h"
#include "util.h"
#include <stdio.h>
#include <llvm/IR/DerivedTypes.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/Intrinsics.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/Type.h>
#include "llvm/IR/LegacyPassManager.h"
#include <llvm/IR/CFG.h>
#include <llvm/IR/IRPrintingPasses.h>
#include <llvm/IR/Verifier.h>
#include <llvm/PassRegistry.h>
#include <llvm/Support/FileUtilities.h>
#include <llvm/Support/FormattedStream.h>
#include <llvm/Target/TargetMachine.h>
#include <llvm/Target/TargetOptions.h>
#include <llvm/Transforms/IPO.h>
#include <llvm/Support/ToolOutputFile.h>
Include dependency graph for func.cpp:

Go to the source code of this file.

Functions

static void lCopyInTaskParameter (int i, llvm::Value *structArgPtr, const std::vector< Symbol *> &args, FunctionEmitContext *ctx)
 

Function Documentation

◆ lCopyInTaskParameter()

static void lCopyInTaskParameter ( int  i,
llvm::Value *  structArgPtr,
const std::vector< Symbol *> &  args,
FunctionEmitContext ctx 
)
static

Parameters for tasks are stored in a big structure; this utility function emits code to copy those values out of the task structure into local stack-allocated variables. (Which we expect that LLVM's 'mem2reg' pass will in turn promote to SSA registers..

Definition at line 165 of file func.cpp.

References FunctionEmitContext::AddElementOffset(), FunctionEmitContext::AllocaInst(), Assert, FunctionEmitContext::EmitFunctionParameterDebugInfo(), FunctionEmitContext::LoadInst(), Symbol::name, Symbol::storagePtr, FunctionEmitContext::StoreInst(), Function::sym, and Symbol::type.

Referenced by Function::emitCode().