similar to: [LLVMdev] How do you add MachineBlockPlacement to a Function Pass Manager?

Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] How do you add MachineBlockPlacement to a Function Pass Manager?"

2016 Mar 29
2
[CodeGen] CodeSize - TailMerging and BlockPlacement
Hi everyone, The code layout that TailMerging (inside BranchFolding) works on is not the final layout optimized based on the branch probability. Generally, after BlockPlacement, many new merging opportunities emerge. I did an experiment of adding additional BranchFolding and BlockPlacement after the existing BlockPlacement (i.e., -block-placement -branch-folder -block-placement) targeting
2010 Nov 15
1
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
Still no luck after switching to: theFPM->add( new llvm::TargetData( *theExecutionEngine->getTargetData() ) ); theFPM->add( llvm::createBasicAliasAnalysisPass() ); theFPM->add( llvm::createInstructionCombiningPass() ); theFPM->add( llvm::createReassociatePass() ); theFPM->add( llvm::createGVNPass() ); theFPM->add( llvm::createCFGSimplificationPass() ); Based on output
2011 Nov 04
2
[LLVMdev] Question on JIT optimizations
Hi, If hope this is the right list to post a question like this. If not, my apologies -- please redirect me. Following the Kaledoscope example I am trying to write a simple JIT and compile my own small language using LLVM. Compilation happens using the C++ api by constructing a VM and emitting code using the api (just as the Kaledoscope example). The code in this setup will be optimized
2010 Feb 17
2
[LLVMdev] Kaleidoscope toy4 failure seg fault on llvm::ExecutionEngine::getTargetData (this=0x0)
I am new to llvm so I might be missing a critical step. My system is Fedora 12 but this also happens in Mac OS X 10.6.2. Here are the steps I used to compile llvm: export TARGETS=x86,x86_64,cpp export INSTALLDIR=/home/rovitotv/llvm ../llvm-2.6/configure --prefix=$INSTALLDIR --enable-bindings=none --enable-targets=$TARGETS --enable-optimized --with-llvmgccdir=$INSTALLDIR
2010 Feb 17
0
[LLVMdev] Kaleidoscope toy4 failure seg fault on llvm::ExecutionEngine::getTargetData (this=0x0)
First, you have to call llvm-g++ to use the llvm-gcc front end, but it doesn't matter here. I'd like to suggest that you use pastebin to put your code and the send us the link, so that we can download it. The problem is that TheExecutionEngine is set to NULL (maybe because of a previous error), but it will be really better if you use pastebin. On Wed, Feb 17, 2010 at 6:01 AM, Todd Rovito
2010 Nov 15
6
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
I'm using the gvn pass, not sure about basic-aa. I've copied the code as-is from http://llvm.org/docs/tutorial/LangImpl4.html#code and added "F->addFnAttr( Attribute::ReadOnly )" after "Function *F = Function::Create(FT, Function::ExternalLinkage, Name, TheModule)". The passes it sets up are: // Set up the optimizer pipeline. Start with registering info about
2010 Nov 15
0
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
Hi Rob, > I'm using the gvn pass, not sure about basic-aa. if you are using LLVM from svn then you need to specify the basic-aa analysis, otherwise gvn won't unify calls to readonly/readnone functions. This is new behaviour introduced by Dan; probably the tutorial should be updated. Ciao, Duncan. > > I've copied the code as-is from
2011 Nov 04
0
[LLVMdev] Question on JIT optimizations
Hi Brent, > The code in this setup will be optimized according to the optimizer pipeline one > sets up as in the code below. I find that if I only use the passes below the > quality of the code is not that good code quality will be dreadful if you don't promote memory accesses to registers right at the start, using eg mem2reg or scalarrepl. (for example inlining is not
2010 Nov 15
1
[LLVMdev] Optimization of calls to functions without side effects (from Kaleidoscope example)
SUCCESS! Sorry, I had removed the addFnAttr() call by accident. Using the basicAA pass and ReadOnly, as you suggested, works like a charm! :) > -----Original Message----- > From: Rob Pieke > Sent: Monday, November 15, 2010 4:40 PM > To: 'Duncan Sands' > Cc: 'llvmdev at cs.uiuc.edu'; 'Dan Gohman' > Subject: RE: [LLVMdev] Optimization of calls to
2016 Feb 24
4
Oddity w/MachineBlockPlacement and Loops
I'm getting some odd behavior out of MBP and was hoping someone knowledge of the code might be able to give some guidance. Fair warning, I'm trying to describe a problem in code I don't really understand, so if something doesn't make sense, assume I misunderstood something. The problematic case I'm seeing is that cold blocks are being placed between the preheader and
2015 Sep 20
3
How to invoke simplifycfg from code
Simplifycfg doesn't get run by default even with -O3, but 'opt -simplifycfg' can do it. I'm looking to add this functionality to an optimizer program that uses the llvm libraries. What's the best way to do this? I don't really mind whether it becomes available as a command line option as in opt, or I need to hardcode it as always on. To make it available as a command line
2010 Feb 17
1
[LLVMdev] Kaleidoscope toy4 failure seg fault on llvm::ExecutionEngine::getTargetData (this=0x0)
On Wed, Feb 17, 2010 at 6:29 AM, Conrado Miranda <miranda.conrado at gmail.com> wrote: > First, you have to call llvm-g++ to use the llvm-gcc front end, but it > doesn't matter here. I got the compile command from the Kaleidoscope documentation. > I'd like to suggest that you use pastebin to put your code and the send us > the link, so that we can download it. The
2007 Sep 22
2
[LLVMdev] LLVM 2.1 Pre-release Version 2 Online
LLVMers, The LLVM 2.1 pre-release version2 is now available: http://llvm.org/prereleases/2.1/version2/ You can help test this pre-release by doing one of the following: 1) Download llvm-2.1, llvm-test-2.1, and the appropriate llvm-gcc4.0 binary. Run "make check" and the full llvm-test suite (make TEST=nightly report). 2) Download llvm-2.1, llvm-test-2.1, and the llvm-gcc4.0 source.
2008 Feb 27
4
[LLVMdev] llvm/test: suffix or operands invalid for `push'
Hi all again, llvm is failing the 2006-11-30-NoCompileUnit and 2006-11-30-Pubnames tests on me. -m32 and --disable-multilib didn't change the outcome. Did I get the command wrong? I tried jo at kurier:~/Delta/llvm/test$ CFLAGS=--multilib make check See below for a transcript of the failed check. What next? Regards, Jo -- snip -- jo at kurier:~/Delta/llvm/test$ make check llvm[0]:
2012 Jun 07
0
[LLVMdev] Instruction Cleanup Questions
On Wed, Jun 6, 2012 at 10:37 PM, Hal Finkel <hfinkel at anl.gov> wrote: > I am working on cleaning up some PPC code generation. Two questions: > > 1. Which pass is responsible for cleaning up self-moves: > 0x00000000100057c0 <+208>: mr r3,r3 > > 2. Which pass is responsible for cleaning up unconditional jumps that > should be fall-throughs: >
2012 Jun 07
3
[LLVMdev] Instruction Cleanup Questions
I am working on cleaning up some PPC code generation. Two questions: 1. Which pass is responsible for cleaning up self-moves: 0x00000000100057c0 <+208>: mr r3,r3 2. Which pass is responsible for cleaning up unconditional jumps that should be fall-throughs: 0x0000000010005d88 <+1688>: b 0x10005d8c <._Z11sfoo+1692> 0x0000000010005d8c <+1692>: ld
2020 Jul 09
3
question on analyzeBranch and getFallThrough
I am working on a back end for an architecture whose jump via table instruction includes the range check. If the index is out of range, the jump table instruction just falls through. I implemented a pass to remove the range check generated before the jump table instruction because it is superfluous. This causes as assertion in MachineBlockPlacement.cpp:
2011 Oct 20
0
[LLVMdev] Question regarding basic-block placement optimization
On Oct 20, 2011, at 9:56 AM, Chandler Carruth wrote: > A new patch is attached that is *much* less of a rough draft. Sorry for any confusion due to the early state of the patch. Thanks, Chandler. This is great stuff. > Still, I never intended this to be on-by-default at first. This is a starting point, that I hope can be improved into something that is on-by-default eventually, but
2012 Aug 02
2
[LLVMdev] [NVPTX] Strange assertion around BlockToChain.clear(); in Release+Asserts build
Hi, After building out project in release mode, caught an assertion, which we have not seen before: hello_f: /tmp/rpmbuild_debug/BUILD/llvm/build/include/llvm/ADT/DenseMap.h:126: void llvm::DenseMap<KeyT, ValueT, KeyInfoT>::clear() [with KeyT = llvm::MachineBasicBlock*, ValueT = <unnamed>::BlockChain*, KeyInfoT = llvm::DenseMapInfo<llvm::MachineBasicBlock*>]: Assertion
2018 Aug 07
3
Regarding basic block layout/code placement optimizations of profile guided optimization (PGO)
Hi, I would like to learn the details regarding what exactly PGO does for basic block layout/code placement optimizations in llvm. Could you please point me to some descriptions? Is it close to this paper (Karl Pettis and Robert C. Hansen. 1990. Profile guided code positioning. PLDI'90) http://perso.ensta-paristech.fr/~bmonsuez/Cours/B6-4/Articles/papers15.pdf? Whether it is purely