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