search for: issimpl

Displaying 20 results from an estimated 21 matches for "issimpl".

Did you mean: issimple
2012 May 31
2
[LLVMdev] DFG of machine functions
...return mc_inst_begin(*F); } static nodes_iterator nodes_end(MCDFGraph<MachineFunction *> F) { return mc_inst_end(*F); } }; template<> struct DOTGraphTraits<MCDFGraph<MachineFunction*> > : public DefaultDOTGraphTraits { DOTGraphTraits (bool isSimple=false) : DefaultDOTGraphTraits(isSimple) {} static std::string getGraphName(MCDFGraph<MachineFunction *> F) { return "DFG for the function"; } static std::string getSimpleNodeLabel(Value *Node, const MCDFGraph<Machine...
2012 Jun 02
0
[LLVMdev] DFG of machine functions
...tatic nodes_iterator nodes_end(MCDFGraph<MachineFunction *> F) { > return mc_inst_end(*F); > } > }; > > template<> > struct DOTGraphTraits<MCDFGraph<MachineFunction*> > : public > DefaultDOTGraphTraits { > > DOTGraphTraits (bool isSimple=false) : DefaultDOTGraphTraits(isSimple) > {} > > static std::string getGraphName(MCDFGraph<MachineFunction *> F) { > return "DFG for the function"; > } > > static std::string getSimpleNodeLabel(Value *Node, >...
2010 Mar 15
1
[LLVMdev] SelectionDAG constant folding leads to assertion failure
My experimental code calls DAG.getNode to construct a unary node with a flag result. Unfortunately the argument turns out to be constant, so lib/CodeGen/SelectionDAG/SelectionDAG.cpp:2332 calls VT.getSizeInBits on the flag type, which isSimple(), so we call V.getSizeInBits at ValueTypes.h:560 and fail at ValueTypes.h:240: clang: .../include/llvm/CodeGen/ValueTypes.h:240: unsigned int llvm::MVT::getSizeInBits() const: Assertion `0 && "getSizeInBits called on extended MVT."' failed. The message is misleading as Fla...
2012 Jul 31
2
[LLVMdev] Assertion failure on region analysis
...758ce 6  libc.so.6       0x00007fe7ed175990 __assert_perror_fail + 0 7  opt             0x0000000000921a70 llvm::Region::contains(llvm::BasicBlock const*) const + 96 8  opt             0x0000000000921f2e llvm::Region::getExitingBlock() const + 142 9  opt             0x0000000000921fd9 llvm::Region::isSimple() const + 73 10 opt             0x00000000009244dc llvm::RegionInfo::updateStatistics(llvm::Region*) + 44 11 opt             0x0000000000924657 llvm::RegionInfo::createRegion(llvm::BasicBlock*, llvm::BasicBlock*) + 327 12 opt             0x0000000000924766 llvm::RegionInfo::findRegionsWithEntry(ll...
2009 Apr 07
0
[LLVMdev] Porting to System z
Hi, > llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td > tblgen: IntrinsicEmitter.cpp:163: void EmitTypeForValueType(std::ostream&, > llvm::MVT::SimpleValueType): Assertion `false && "Unsupported ValueType!"' > failed. this came up before IIRC, but I don't remember the details - buggy system compiler? Try searching the archives. Also, if you
2012 Jul 31
0
[LLVMdev] Assertion failure on region analysis
...0x00007fe7ed175990 __assert_perror_fail + 0 > 7 opt 0x0000000000921a70 > llvm::Region::contains(llvm::BasicBlock const*) const + 96 > 8 opt 0x0000000000921f2e llvm::Region::getExitingBlock() > const + 142 > 9 opt 0x0000000000921fd9 llvm::Region::isSimple() const + 73 > 10 opt 0x00000000009244dc > llvm::RegionInfo::updateStatistics(llvm::Region*) + 44 > 11 opt 0x0000000000924657 > llvm::RegionInfo::createRegion(llvm::BasicBlock*, llvm::BasicBlock*) + 327 > 12 opt 0x0000000000924766 > llvm::Regio...
2009 Apr 07
2
[LLVMdev] Porting to System z
Hi, I am beginning the porting process for Linux on System z (aka IBM Mainframe). I thought I¹d build LLVM first with the c and cpp backends so that tools like TableGen would be created that I¹d then use to process the .td files that I¹ll be creating. So I used svn to grab the code from the repository and ran configure and make. However, the build breaks at this point: llvm[1]: Building
2011 Nov 17
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...t a break here. What happends in the default case or do you cover all intrinsics.? > + } > + } > + } Most of these '{}' are not needed. > + } > + > + // Vectorize simple loads and stores if possbile: > + bool isLdStr = false; IsSimpleLoad? > + if (isa<LoadInst>(I)) { > + isLdStr = cast<LoadInst>(I)->isSimple(); > + } else if (isa<StoreInst>(I)) { > + isLdStr = cast<StoreInst>(I)->isSimple(); > + } if (LoadInst *Load = dyn_cast<LoadInst>(I)) { i...
2009 Apr 07
6
[LLVMdev] Porting to System z
...Using gdb to see what may be happening shows that the value is llvm::MVT::i8 that it is having problems with. I assume it must be failing the MVT(VT).isInteger() test, so I added some logic to break down the test: 144 bool isInt = MVT(VT).isInteger(); (gdb) n 145 bool isSim = MVT(VT).isSimple(); (gdb) p isInt $1 = false (gdb) n 146 if (MVT(VT).isInteger()) { (gdb) p isSim $2 = true So you'd assume it's the tests in isInteger() that are failing: /// isInteger - Return true if this is an integer, or a vector integer type. bool isInteger() const { return isSim...
2009 Sep 07
0
[LLVMdev] Graphviz and LLVM-TV
Edwin, thanks, it starts making sense inline comments... Török Edwin wrote: > On 2009-09-06 19:57, Ioannis Nousias wrote: > >> Edwin, >> >> thank you for your effort, but I'm not sure I understand. >> Are you describing a graph traversal problem? Is the data model stored >> in a predecessor/successor fashion, which requires you to 'walk' the
2011 Nov 21
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...o you cover all intrinsics.? > > + } > > + } > > + } > Most of these '{}' are not needed. > > > + } > > + > > + // Vectorize simple loads and stores if possbile: > > + bool isLdStr = false; > > IsSimpleLoad? > > > + if (isa<LoadInst>(I)) { > > + isLdStr = cast<LoadInst>(I)->isSimple(); > > + } else if (isa<StoreInst>(I)) { > > + isLdStr = cast<StoreInst>(I)->isSimple(); > > + } > > if (LoadInst *Lo...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, et al., Attached is the my autovectorization pass. I've fixed a bug that appears when using -bb-vectorize-aligned-only, fixed some 80-col violations, etc., and at least on x86_64, all test cases pass except for a few; and all of these failures look like instruction-selection bugs. For example: MultiSource/Applications/ClamAV - fails to compile shared_sha256.c with an error: error in
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, I've attached the latest version of my autovectorization patch. I was able to add support for using the ScalarEvolution analysis for load/store pairing (thanks for your help!). This led to a modest performance increase and a modest compile-time increase. This version also has a cutoff as you suggested (although the default value is set high (4000 instructions between pairs) because
2009 Sep 06
3
[LLVMdev] Graphviz and LLVM-TV
On 2009-09-06 19:57, Ioannis Nousias wrote: > Edwin, > > thank you for your effort, but I'm not sure I understand. > Are you describing a graph traversal problem? Is the data model stored > in a predecessor/successor fashion, which requires you to 'walk' the > graph in order to visit all nodes? (and what happens when you have > disjointed DFGs?). Sorry for the
2020 Jan 03
10
Writing loop transformations on the right representation is more productive
...mount of code needed to verify the correctness. A transformation like loop fusion could look like: void applyFuse(Red1, Red2) { // Assume Red1 and Red2 are consecutive sibling loops // Bail out on untypical things (atomic accesses, exceptions, convergent instructions, ...) if (!Red1->isSimple() || !Red2->isSimple()) return; // Consistency checks (can be less less strict by moving conditions into the fused body). if (Red1->getIterationCount() != Red2->getIterationCount()) return; if (Red1->getPredicate() != Red2->getPredicate()) return; // Create new...
2011 Dec 02
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...;& ChosenPairs); > + > + void fuseChosenPairs(BasicBlock&BB, > + std::vector<Value *> &PairableInsts, > + DenseMap<Value *, Value *>& ChosenPairs); > + > + bool isInstVectorizable(Instruction *I, bool&IsSimpleLoadStore); > + > + bool areInstsCompatible(Instruction *I, Instruction *J, > + bool IsSimpleLoadStore); > + > + void trackUsesOfI(DenseSet<Value *> &Users, > + AliasSetTracker&WriteSet, Instruction *I, > +...
2011 Dec 14
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...; + > > + void fuseChosenPairs(BasicBlock&BB, > > + std::vector<Value *> &PairableInsts, > > + DenseMap<Value *, Value *>& ChosenPairs); > > + > > + bool isInstVectorizable(Instruction *I, bool&IsSimpleLoadStore); > > + > > + bool areInstsCompatible(Instruction *I, Instruction *J, > > + bool IsSimpleLoadStore); > > + > > + void trackUsesOfI(DenseSet<Value *> &Users, > > + AliasSetTracker&WriteSet,...
2011 Nov 23
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 21:22 -0600, Hal Finkel wrote: > On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > > Tobias, > > > > I've attached an updated patch. It contains a few bug fixes and many > > (refactoring and coding-convention) changes inspired by your comments. > > > > I'm currently trying to fix the bug responsible for causing a compile
2011 Dec 02
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...; + > > + void fuseChosenPairs(BasicBlock&BB, > > + std::vector<Value *> &PairableInsts, > > + DenseMap<Value *, Value *>& ChosenPairs); > > + > > + bool isInstVectorizable(Instruction *I, bool&IsSimpleLoadStore); > > + > > + bool areInstsCompatible(Instruction *I, Instruction *J, > > + bool IsSimpleLoadStore); > > + > > + void trackUsesOfI(DenseSet<Value *> &Users, > > + AliasSetTracker&WriteSet,...
2011 Nov 22
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > Tobias, > > I've attached an updated patch. It contains a few bug fixes and many > (refactoring and coding-convention) changes inspired by your comments. > > I'm currently trying to fix the bug responsible for causing a compile > failure when compiling >