Displaying 20 results from an estimated 21 matches for "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<MachineF...
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 Flag...
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(llv...
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::Region...
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)) {
is...
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 isSimp...
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 *Loa...
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, I...
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, I...
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
>