Intel SPMD Program Compiler  1.9.1
Functions
func.cpp File Reference
#include "func.h"
#include "ctx.h"
#include "expr.h"
#include "llvmutil.h"
#include "module.h"
#include "type.h"
#include "stmt.h"
#include "sym.h"
#include "util.h"
#include <stdio.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/Type.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/Intrinsics.h>
#include <llvm/IR/DerivedTypes.h>
#include "llvm/PassManager.h"
#include <llvm/PassRegistry.h>
#include <llvm/Transforms/IPO.h>
#include <llvm/Support/FormattedStream.h>
#include <llvm/Support/FileUtilities.h>
#include <llvm/Target/TargetMachine.h>
#include <llvm/Target/TargetOptions.h>
#include <llvm/Analysis/Verifier.h>
#include <llvm/Assembly/PrintModulePass.h>
#include <llvm/Support/CFG.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

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 201 of file func.cpp.

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

Referenced by Function::emitCode().