Mercurial > hg > octave-lyh
diff src/pt-jit.cc @ 14959:12fd4a62d633
Fix whitespace issues and update documentation
* src/pt-jit.h: Update TODO list and fix whitespace issues.
* src/pt-jit.cc: Fix whitespace issues.
author | Max Brister <max@2bass.com> |
---|---|
date | Tue, 19 Jun 2012 12:27:55 -0500 |
parents | 4b98b3f66e46 |
children | c959136f8c3e |
line wrap: on
line diff
--- a/src/pt-jit.cc +++ b/src/pt-jit.cc @@ -210,7 +210,7 @@ { try { - gripe_invalid_index (); + gripe_invalid_index (); } catch (const octave_execution_exception&) { @@ -357,7 +357,8 @@ llvm::Type *bool_t = llvm::Type::getInt1Ty (context); llvm::Type *string_t = llvm::Type::getInt8Ty (context); string_t = string_t->getPointerTo (); - llvm::Type *index_t = llvm::Type::getIntNTy (context, sizeof(octave_idx_type) * 8); + llvm::Type *index_t = llvm::Type::getIntNTy (context, + sizeof(octave_idx_type) * 8); llvm::StructType *range_t = llvm::StructType::create (context, "range"); std::vector<llvm::Type *> range_contents (4, scalar_t); @@ -392,15 +393,16 @@ lerror_state = new llvm::GlobalVariable (*module, bool_t, false, llvm::GlobalValue::ExternalLinkage, 0, "error_state"); - engine->addGlobalMapping (lerror_state, reinterpret_cast<void *> (&error_state)); + engine->addGlobalMapping (lerror_state, + reinterpret_cast<void *> (&error_state)); // any with anything is an any op llvm::Function *fn; llvm::Type *binary_op_type = llvm::Type::getIntNTy (context, sizeof (octave_value::binary_op)); llvm::Function *any_binary = create_function ("octave_jit_binary_any_any", - any->to_llvm (), binary_op_type, - any->to_llvm (), any->to_llvm ()); + any_t, binary_op_type, + any_t, any_t); engine->addGlobalMapping (any_binary, reinterpret_cast<void*>(&octave_jit_binary_any_any)); @@ -434,7 +436,6 @@ // grab any fn = create_function ("octave_jit_grab_any", any, any); - engine->addGlobalMapping (fn, reinterpret_cast<void*>(&octave_jit_grab_any)); grab_fn.add_overload (fn, false, any, any); grab_fn.stash_name ("grab"); @@ -443,7 +444,8 @@ llvm::Function *print_matrix = create_function ("octave_jit_print_matrix", void_t, matrix_t->getPointerTo ()); - engine->addGlobalMapping (print_matrix, reinterpret_cast<void*>(&octave_jit_print_matrix)); + engine->addGlobalMapping (print_matrix, + reinterpret_cast<void*>(&octave_jit_print_matrix)); fn = create_function ("octave_jit_grab_matrix", matrix, matrix); llvm::BasicBlock *body = llvm::BasicBlock::Create (context, "body", fn); @@ -470,13 +472,14 @@ // release any fn = create_function ("octave_jit_release_any", void_t, any_t); - engine->addGlobalMapping (fn, reinterpret_cast<void*>(&octave_jit_release_any)); + engine->addGlobalMapping (fn, + reinterpret_cast<void*>(&octave_jit_release_any)); release_fn.add_overload (fn, false, 0, any); release_fn.stash_name ("release"); // release matrix - llvm::Function *delete_mat = create_function ("octave_jit_delete_matrix", void_t, - matrix_t); + llvm::Function *delete_mat = create_function ("octave_jit_delete_matrix", + void_t, matrix_t); engine->addGlobalMapping (delete_mat, reinterpret_cast<void*> (&octave_jit_delete_matrix)); @@ -539,8 +542,10 @@ body = llvm::BasicBlock::Create (context, "body", fn); builder.SetInsertPoint (body); { - llvm::BasicBlock *warn_block = llvm::BasicBlock::Create (context, "warn", fn); - llvm::BasicBlock *normal_block = llvm::BasicBlock::Create (context, "normal", fn); + llvm::BasicBlock *warn_block = llvm::BasicBlock::Create (context, "warn", + fn); + llvm::BasicBlock *normal_block = llvm::BasicBlock::Create (context, + "normal", fn); llvm::Value *zero = llvm::ConstantFP::get (scalar_t, 0); llvm::Value *check = builder.CreateFCmpUEQ (zero, ++fn->arg_begin ()); @@ -551,7 +556,8 @@ builder.CreateBr (normal_block); builder.SetInsertPoint (normal_block); - llvm::Value *ret = builder.CreateFDiv (fn->arg_begin (), ++fn->arg_begin ()); + llvm::Value *ret = builder.CreateFDiv (fn->arg_begin (), + ++fn->arg_begin ()); builder.CreateRet (ret); jit_function::overload ol (fn, true, scalar, scalar, scalar); @@ -562,7 +568,8 @@ // ldiv is the same as div with the operators reversed llvm::Function *div = fn; - fn = create_function ("octave_jit_ldiv_scalar_scalar", scalar, scalar, scalar); + fn = create_function ("octave_jit_ldiv_scalar_scalar", scalar, scalar, + scalar); body = llvm::BasicBlock::Create (context, "body", fn); builder.SetInsertPoint (body); { @@ -636,18 +643,21 @@ // logically true logically_true_fn.stash_name ("logically_true"); - llvm::Function *gripe_nantl = create_function ("octave_jit_gripe_nan_to_logical_conversion", void_t); + llvm::Function *gripe_nantl + = create_function ("octave_jit_gripe_nan_to_logical_conversion", void_t); engine->addGlobalMapping (gripe_nantl, reinterpret_cast<void *> (&octave_jit_gripe_nan_to_logical_conversion)); - fn = create_function ("octave_jit_logically_true_scalar", boolean, scalar); body = llvm::BasicBlock::Create (context, "body", fn); builder.SetInsertPoint (body); { - llvm::BasicBlock *error_block = llvm::BasicBlock::Create (context, "error", fn); - llvm::BasicBlock *normal_block = llvm::BasicBlock::Create (context, "normal", fn); - - llvm::Value *check = builder.CreateFCmpUNE (fn->arg_begin (), fn->arg_begin ()); + llvm::BasicBlock *error_block = llvm::BasicBlock::Create (context, "error", + fn); + llvm::BasicBlock *normal_block = llvm::BasicBlock::Create (context, + "normal", fn); + + llvm::Value *check = builder.CreateFCmpUNE (fn->arg_begin (), + fn->arg_begin ()); builder.CreateCondBr (check, error_block, normal_block); builder.SetInsertPoint (error_block); @@ -673,7 +683,8 @@ // FIXME: May be benificial to implement all in LLVM make_range_fn.stash_name ("make_range"); llvm::Function *compute_nelem - = create_function ("octave_jit_compute_nelem", index, scalar, scalar, scalar); + = create_function ("octave_jit_compute_nelem", index, scalar, scalar, + scalar); engine->addGlobalMapping (compute_nelem, reinterpret_cast<void*> (&octave_jit_compute_nelem)); @@ -701,7 +712,8 @@ make_range_fn.add_overload (fn, false, range, scalar, scalar, scalar); // paren_subsref - llvm::Function *ginvalid_index = create_function ("gipe_invalid_index", void_t); + llvm::Function *ginvalid_index = create_function ("gipe_invalid_index", + void_t); engine->addGlobalMapping (ginvalid_index, reinterpret_cast<void*> (&octave_jit_ginvalid_index)); @@ -721,7 +733,6 @@ ione = one; else ione = llvm::ConstantInt::get (int_t, 1); - llvm::Value *szero = llvm::ConstantFP::get (scalar_t, 0); @@ -1387,7 +1398,7 @@ if (inc->branch_alive (p)) infered = jit_typeinfo::join (infered, argument_type (i)); } - + if (infered != type ()) { stash_type (infered); @@ -1508,9 +1519,8 @@ block->append (create<jit_branch> (final_block)); add_block (final_block); - + for (vmap_t::iterator iter = vmap.begin (); iter != vmap.end (); ++iter) - { jit_variable *var = iter->second; const std::string& name = var->name (); @@ -1556,7 +1566,8 @@ // more interesting for (jit_block::iterator iter = entry_block->begin (); iter != entry_block->end (); ++iter) - if (jit_extract_argument *extract = dynamic_cast<jit_extract_argument *> (*iter)) + if (jit_extract_argument *extract + = dynamic_cast<jit_extract_argument *> (*iter)) arguments.push_back (std::make_pair (extract->name (), true)); convert_llvm to_llvm (*this); @@ -1636,7 +1647,6 @@ result = block->append (create<jit_call> (jit_typeinfo::make_range, base, limit, increment)); - } void @@ -1708,7 +1718,7 @@ jit_call *init_iter = create<jit_call> (jit_typeinfo::for_init, control); block->append (init_iter); block->append (create<jit_assign> (iterator, init_iter)); - + jit_value *check = block->append (create<jit_call> (jit_typeinfo::for_check, control, iterator)); block->append (create<jit_cond_branch> (check, body, tail)); @@ -1718,7 +1728,7 @@ jit_call *idx_rhs = create<jit_call> (jit_typeinfo::for_index, control, iterator); block->append (idx_rhs); do_assign (lhs_name, idx_rhs, false); - + // do loop tree_statement_list *pt_body = cmd.body (); pt_body->accept (*this); @@ -1859,7 +1869,8 @@ { tree_expression *expr = tic->condition (); jit_value *cond = visit (expr); - jit_call *check = create<jit_call> (&jit_typeinfo::logically_true, cond); + jit_call *check = create<jit_call> (&jit_typeinfo::logically_true, + cond); block->append (check); jit_block *next = create<jit_block> (block->name ()); @@ -1867,7 +1878,8 @@ block->append (create<jit_check_error> (check, next, final_block)); block = next; - jit_block *body = create<jit_block> (i == 0 ? "if_body" : "ifelse_body"); + jit_block *body = create<jit_block> (i == 0 ? "if_body" + : "ifelse_body"); add_block (body); jit_instruction *br = create<jit_cond_branch> (check, body, @@ -1923,7 +1935,8 @@ tree_expression *arg0 = arg_list->front (); jit_value *index = visit (arg0); - jit_call *call = create<jit_call> (jit_typeinfo::paren_subsref, object, index); + jit_call *call = create<jit_call> (jit_typeinfo::paren_subsref, object, + index); block->append (call); jit_block *normal = create<jit_block> (block->name ()); @@ -2231,7 +2244,8 @@ jit_block::df_set visited, added_phi; std::list<jit_block *> ssa_worklist; iter->second->use_blocks (visited); - ssa_worklist.insert (ssa_worklist.begin (), visited.begin (), visited.end ()); + ssa_worklist.insert (ssa_worklist.begin (), visited.begin (), + visited.end ()); while (ssa_worklist.size ()) { @@ -2446,7 +2460,8 @@ for (biter = blocks.begin (); biter != blocks.end (); ++biter) { jit_block *jblock = *biter; - llvm::BasicBlock *block = llvm::BasicBlock::Create (context, jblock->name (), + llvm::BasicBlock *block = llvm::BasicBlock::Create (context, + jblock->name (), function); jblock->stash_llvm (block); } @@ -2615,7 +2630,8 @@ { llvm::Value *cond = cb.cond_llvm (); llvm::Value *br; - br = builder.CreateCondBr (cond, cb.successor_llvm (0), cb.successor_llvm (1)); + br = builder.CreateCondBr (cond, cb.successor_llvm (0), + cb.successor_llvm (1)); cb.stash_llvm (br); } @@ -2852,7 +2868,8 @@ std::cout << std::endl; #endif - function = reinterpret_cast<jited_function>(engine->getPointerToFunction (llvm_function)); + void *void_fn = engine->getPointerToFunction (llvm_function); + function = reinterpret_cast<jited_function> (void_fn); } jit_info::~jit_info (void)