Displaying 10 results from an estimated 10 matches for "getmul".
2019 Jan 31
2
MachineIRBuilder API
.... The DAG didn't really care which evaluation order happened as the de-duplication and unordered nature of the DAG produced the same result either way. For MIR, each builder needs to insert into a linear list so the evaluation order of those insertions matters. For example:
getAdd(getSub(a, b), getMul(c, d))
could produce either:
%0 = G_SUB %a, %b
%1 = G_MUL %c, %d
%2 = G_ADD %0, %1
or:
%0 = G_MUL %c, %d
%1 = G_SUB %a, %b
%2 = G_ADD %1, %0
depending on the (indeterminate) evaluation order of the arguments to getAdd(). The G_ADD is always last because getSub() and getMul() must execute before get...
2019 Jan 31
3
MachineIRBuilder API
Hi,
I’m finding the API for MachineIRBuilder to be pretty annoying to use compared to SelectionDAG. I think it’s making the majority of code more verbose and unwieldly for anything less than trivial. I think changing it to behave more like the DAG.get* functions would make it easier to use, and decrease the mental overhead when porting code from SelectionDAG.
The main issue is needing to create
2014 Sep 19
2
[LLVMdev] More careful treatment of floating point exceptions
Hi Sanjay,
Thanks, I saw this flag and it's definitely should be considered, but
it appeared to me to be static characteristic of target platform. I'm
not sure how appropriate it would be to change its value from a front-end.
It says "Has", while optional flag would rather say "Uses" meaning that
implementation cares about floating point exceptions.
Regards,
Sergey
2014 Sep 25
2
[LLVMdev] More careful treatment of floating point exceptions
.../TargetFolder.h
+++ b/include/llvm/Analysis/TargetFolder.h
@@ -62,11 +62,14 @@ public:
return Fold(ConstantExpr::getFSub(LHS, RHS));
}
Constant *CreateMul(Constant *LHS, Constant *RHS,
- bool HasNUW = false, bool HasNSW = false) const {
- return Fold(ConstantExpr::getMul(LHS, RHS, HasNUW, HasNSW));
- }
- Constant *CreateFMul(Constant *LHS, Constant *RHS) const {
- return Fold(ConstantExpr::getFMul(LHS, RHS));
+ bool HasNUW = false, bool HasNSW = false,
+ bool HonorFPExceptions = false) const {
+ return Fold(Constant...
2008 Apr 11
2
[LLVMdev] LLVMBuilder vs LLVMFoldingBuilder
...ail instead
of including them inline.
Some nits:
> + Value *CreateMul(Value *LHS, Value *RHS, const char *Name = "") {
> + if (Constant *LC = dyn_cast<Constant>(LHS))
> + if (Constant *RC = dyn_cast<Constant>(RHS))
> + return ConstantExpr::getMul(LC, RC);
> + return Insert(BinaryOperator::createMul(LHS, RHS, Name));
> + }
Please consistently indent by 2, not 4.
>
> +
> + Value *CreateInsertElement(Value *Vec, Value *NewElt, Value *Idx,
> + const char *Name = "") {...
2008 Apr 10
0
[LLVMdev] LLVMBuilder vs LLVMFoldingBuilder
Dominic Hamon wrote:
> Duncan Sands wrote:
>>> Another option that was discussed in #llvm is to nuke LLVMBuilder
>>> and rename LLVMFoldingBuilder to LLVMBuilder. If this was the case,
>>> I'd argue for a flag in the Builder that could retain the old
>>> non-folding functionality for debugging purposes.
>>>
>>
>> this plan
2008 Apr 10
3
[LLVMdev] LLVMBuilder vs LLVMFoldingBuilder
Duncan Sands wrote:
>> Another option that was discussed in #llvm is to nuke LLVMBuilder and
>> rename LLVMFoldingBuilder to LLVMBuilder. If this was the case, I'd
>> argue for a flag in the Builder that could retain the old non-folding
>> functionality for debugging purposes.
>>
>
> this plan sounds good to me. However it's not clear to me how
2011 Feb 04
3
[LLVMdev] ConstantBuilder proposal
...nstant *C1, Constant *C2) {
return ConstantExpr::getFAdd(C1, C2);
}
static Constant *GetSub(Constant *C1, Constant *C2) {
return ConstantExpr::getSub(C1, C2);
}
static Constant *GetFSub(Constant *C1, Constant *C2) {
return ConstantExpr::getFSub(C1, C2);
}
static Constant *GetMul(Constant *C1, Constant *C2) {
return ConstantExpr::getMul(C1, C2);
}
static Constant *GetFMul(Constant *C1, Constant *C2) {
return ConstantExpr::getFMul(C1, C2);
}
static Constant *GetUDiv(Constant *C1, Constant *C2) {
return ConstantExpr::getUDiv(C1, C2);
}
static Consta...
2010 Feb 07
3
[LLVMdev] Help with Mac OS X 10.6.2 build
...degen() in ccHkdHVT.o
"llvm::ConstantExpr::getCast(unsigned int, llvm::Constant*,
llvm::Type const*)", referenced from:
BinaryExprAST::Codegen() in ccHkdHVT.o
"llvm::Module::dump() const", referenced from:
_main in ccHkdHVT.o
"llvm::ConstantExpr::getMul(llvm::Constant*, llvm::Constant*)",
referenced from:
BinaryExprAST::Codegen() in ccHkdHVT.o
"vtable for llvm::CallInst", referenced from:
llvm::CallInst::CallInst<__gnu_cxx::__normal_iterator<llvm::Value**,
std::vector<llvm::Value*, std::allocator<llvm:...
2010 Feb 07
0
[LLVMdev] Help with Mac OS X 10.6.2 build
..."llvm::ConstantExpr::getCast(unsigned int, llvm::Constant*,
> llvm::Type const*)", referenced from:
> BinaryExprAST::Codegen() in ccHkdHVT.o
> "llvm::Module::dump() const", referenced from:
> _main in ccHkdHVT.o
> "llvm::ConstantExpr::getMul(llvm::Constant*, llvm::Constant*)",
> referenced from:
> BinaryExprAST::Codegen() in ccHkdHVT.o
> "vtable for llvm::CallInst", referenced from:
> llvm::CallInst::CallInst<__gnu_cxx::__normal_iterator<llvm::Value**,
> std::vector<llvm::Val...