search for: getus

Displaying 20 results from an estimated 72 matches for "getus".

Did you mean: gets
2008 Apr 16
0
[LLVMdev] PATCH: Use size reduction -- wave2
On Apr 16, 2008, at 2:50 AM, heisenbug wrote: > > And now here is my educated speculation: > There are 2 things that became slower > 1) Use::getUser() > 2) Use::get/set due to tagging. > > The former is seldom called: > > $ find lib -name "*.cpp" | xargs grep "getUser(" | wc -l > 41 The majority of those aren't actually Use::getUser, but on the other hand this grep misses all the users of value_...
2008 Apr 16
5
[LLVMdev] PATCH: Use size reduction -- wave2
...ple to do your measurements yourself (and I'd love to hear the results!) : cd llvm svn switch http://llvm.org/svn/llvm-project/llvm/branches/ggreif/use-diet . make rebuild llvm-gcc, etc. retest. And now here is my educated speculation: There are 2 things that became slower 1) Use::getUser() 2) Use::get/set due to tagging. The former is seldom called: $ find lib -name "*.cpp" | xargs grep "getUser(" | wc -l 41 We could audit those to make sure that no unnecessary calls are done. But the getUse() algorithm is not sooo inefficient, anyway. The second is...
2020 Jan 15
4
Finding callees of a function
I searched the doxygen documentation and could not find a solution to my task: In a ModulePass running at EP_OptimizerLast, if I have a function F like in: bool Foo:runOnModule(Module &M) { LLVMContext &C = M.getContext(); for (auto &F : M) { // magic here if I want to know from which function (callee) each function is called - how can I do this? (so that I e.g. have
2006 Sep 06
0
soapenc:base64 and xsd:base64Binary
...<xsd:restriction base="soapenc:Array"> <xsd:attribute wsdl:arrayType="xsd:int[]" ref="soapenc:arrayType"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> </xsd:schema> </types> <message name="GetUser"> <part name="userID" type="xsd:int"/> </message> <message name="GetUserResponse"> <part name="return" type="soapenc:base64"/> </message> <portType name="IdkitIdkitPort"> <operat...
2015 Jul 27
2
[LLVMdev] a question about pooalloc
....h: No such file or directory. ​I correct the path of callsite.h to "llvm/Support/Callsite.h". there is another error: AddressTakenAnalysis.cpp:In function 'bool isAddresTaken(llvm::Value)' AddressTakenAnalysis.cpp:39:18: error: 'class llvm::User' hao no member named 'getUser' User *U = I->getUser(); .... ​ so I wonder if I get the wrong version, and where should I get the right version compiler with LLVM3.3? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150727/cced8694...
2018 Apr 20
2
Missed strlen optimizations
Use *last = nullptr; for (Use &U : Src->uses()) last = &U; last->getUser()->dump(); Or any better solution? 2018-04-20 19:19 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>: > Is: > > > 2018-04-20 18:07 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>: > >> Hello, >> >> Code: https://godbolt.org/g/EG...
2011 Jan 06
0
Problem with package twitteR and converting S4 obj to data frame
...get the following error: Error in list_to_dataframe(res, attr(.data, "split_labels")) : Results do not have equal lengths I have no clue why works fine with n=10 but for higher values fall over. Any Suggestions? Below is my script. Thanks, Alberto library(plyr) library(twitteR) getuser <- getUser('altons') count <- 50 UserFollowers <-userFollowers(getuser, n=count, session = getCurlHandle()) dffollow <- ldply(userFollowers(getuser, n=count, session = getCurlHandle()), function(x) c(screenName=x at screenName ,name=x at name ,status...
2018 Apr 20
0
Missed strlen optimizations
Maybe nicer.. auto i = Src->uses().begin(); std::advance(i, Src->getNumUses() - 1); i->getUser()->dump(); 2018-04-20 19:19 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>: > Use *last = nullptr; > for (Use &U : Src->uses()) > last = &U; > last->getUser()->dump(); > > > Or any better solution? > > 2018-04-20 19:19 G...
2015 May 09
4
[LLVMdev] [LSR] hoisting loop invariants in reverse order
...int arg2 = arg1 + c; int arg3 = arg2 + c; // 2 muls and 3 adds/subs. 1 add/sub less than with the reversed order I have a proof-of-concept patch ( http://reviews.llvm.org/differential/diff/25402/) that has CollectFixupsAndInitialFormulae to sort initial formulae in a dominance order (i.e. if A.getUser() dominates B.getUser(), then we put A before B). It breaks some tests that are too sensitive to order changes; besides that, I don't see significant issues. Jingyue -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/a...
2018 Aug 07
2
Error Calling eraseFromParent()
Hi. This is part of my code: ... if (auto* op = dyn_cast<BinaryOperator>(&I)) { Value* lhs = op->getOperand(0); Value* rhs = op->getOperand(1); Value* mul = builder.CreateMul(lhs, rhs); for (auto& U : op->uses()) { User* user = U.getUser(); user->setOperand(U.getOperandNo(), mul); } I.eraseFromParent(); } ... This leads to the following runtime error: LLVMSymbolizer: error reading file: No such file or directory ... Does anybody know the solution? Regards. -------------- next part -------------- An HTML attachment...
2018 Aug 08
2
Error Calling eraseFromParent()
...!= Ie;) { Instruction *I = &*(It++); if (auto* op = dyn_cast<BinaryOperator>(I)) { IRBuilder<NoFolder> builder(op); Value* lhs = op->getOperand(0); Value* rhs = op->getOperand(1); Value* mul = builder.CreateMul(lhs, rhs); for (auto& U : op->uses()) { User* user = U.getUser(); user->setOperand(U.getOperandNo(), mul); } //I->eraseFromParent(); dels.push_back(I); } } for (auto &I : dels) { I->eraseFromParent(); } ... On Wed, Aug 8, 2018 at 6:16 PM, mayuyu.io <admin at mayuyu.io> wrote: > Hi: > As stated in the documentation you shouldn’t...
2009 Jul 18
3
[LLVMdev] Where does llvm.memcpy.i64 and friends get lowered ?
...mes like 'memcpy' too. It seems a bit of an inconsistancy for the Module not to reference this and have to pick it up from the relocations. Also there is the matter of 'abort' which seems to be defined by most if not all modules even if it is not being used. I am using GlobalValue::getUses() to filter it. Whats going on with 'abort' ? Aaron > > -Chris > > > I get :- > > ---------- Functions ---------- > llvm.memcpy.i64 > Mangled name = llvm.memcpy.i64 > DefaultVisibility > ExternalLinkage - Externally visible. >...
2013 Jan 02
2
[LLVMdev] Build Failure
I'm getting a build failure with -Werror: [off-dbg] : [llvm] /ptmp/dag/llvm/official/llvm/lib/IR/Use.cpp: In member function 'llvm::User* llvm::Use::getUser() const': [off-dbg] : [llvm] /ptmp/dag/llvm/official/llvm/lib/IR/Use.cpp:142:14: error: cast from type 'const llvm::Use*' to type 'llvm::User*' casts away qualifiers [-Werror=cast-qual] -David
2014 Aug 09
2
[LLVMdev] difference between replaceAllUsesWith and replaceUsesOfWith?
Why is the first for loop not equivalent to the second? Thanks, Rob =========================== for (GlobalVariable **i = Globals.begin(), **e = Globals.end(); i != e; ++i) { GlobalVariable *GV = *i; Constant *GEP = ConstantExpr::getGetElementPtr(...); GV->replaceAllUsesWith(GEP); } =========================== for (GlobalVariable **i = Globals.begin(), **e = Globals.end(); i != e;
2018 Aug 07
2
Error Calling eraseFromParent()
...de { for (auto &I : instructions(F)) { if (auto* op = dyn_cast<BinaryOperator>(&I)) { IRBuilder<> builder(op); Value* lhs = op->getOperand(0); Value* rhs = op->getOperand(1); Value* mul = builder.CreateMul(lhs, rhs); for (auto& U : op->uses()) { User* user = U.getUser(); user->setOperand(U.getOperandNo(), mul); } I.eraseFromParent(); } } ... And I think that the code worked well with LLVM-3.6.0 that I tested one year ago. Now, I use LLVM-6.0.0. Regards. On Tue, Aug 7, 2018 at 8:11 PM, <paul.robinson at sony.com> wrote: > LLVMSymbolizer is...
2014 Aug 09
3
[LLVMdev] difference between replaceAllUsesWith and replaceUsesOfWith?
...loop not equivalent to the second? > > In the second loop, "*ui" is an llvm::Use object. It's owned by a > User, but isn't a subclass of one. To match the first loop, you either > need to call Value::user_begin instead of use_begin, or do the cast on > "ui->getUser()". > I think this is incorrect since the use_iterator is defined as: `typedef value_use_iterator<User> use_iterator;` and indeed `ui->getUser();` is not a callable function on a User. What am I missing? -Rob -------------- next part -------------- An HTML attachment was scru...
2018 Aug 08
3
Error Calling eraseFromParent()
...gt; if (auto* op = dyn_cast<BinaryOperator>(I)) { > IRBuilder<NoFolder> builder(op); > > Value* lhs = op->getOperand(0); > Value* rhs = op->getOperand(1); > Value* mul = builder.CreateMul(lhs, rhs); > > for (auto& U : op->uses()) { > User* user = U.getUser(); > user->setOperand(U.getOperandNo(), mul); > } > //I->eraseFromParent(); > dels.push_back(I); > } > } > > for (auto &I : dels) { > I->eraseFromParent(); > } > ... > > On Wed, Aug 8, 2018 at 6:16 PM, mayuyu.io <admin at mayuyu.io> wrot...
2016 Feb 16
2
Difference between “uses” and “user”
Hi everyone, Instruction and Value classes have "Uses" and "User". What is the difference between them? I think that "Uses" gives all the instructions/values that a particular Value depends on and "User" gives all the instructions/values that depend on that particular value. Is that right? Best, Carlo -------------- next part -------------- An HTML
2018 Aug 07
2
Error Calling eraseFromParent()
...; > if (auto* op = dyn_cast<BinaryOperator>(&I)) { > IRBuilder<> builder(op); > > Value* lhs = op->getOperand(0); > Value* rhs = op->getOperand(1); > Value* mul = builder.CreateMul(lhs, rhs); > > for (auto& U : op->uses()) { > User* user = U.getUser(); > user->setOperand(U.getOperandNo(), mul); > } > > I.eraseFromParent(); > } > > } > ... > And I think that the code worked well with LLVM-3.6.0 that I tested one > year ago. Now, I use LLVM-6.0.0. > Regards. > -------------- next part --------------...
2017 Jun 09
2
Get segfault with ModulePass
...codeName() << '\n'; loc = I.getDebugLoc(); if (loc != nullptr) { errs() << "file: " << loc->getFilename() << '\n'; } for (const auto& use : I.uses()) { if (const CallInst* c = dyn_cast<CallInst>(use.getUser())) { const Function* f = c->getCalledFunction(); if (f != nullptr) { for (unsigned i = 0; i < c->getNumArgOperands(); ++i) { const Use& u = c->getArgOperandUse(i); if (u.operator->() == &I) { Function::const_arg_itera...