similar to: [LLVMdev] which pass for optimizing access to a global struct?

Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] which pass for optimizing access to a global struct?"

2010 May 14
2
[LLVMdev] vector optimization
Hi! Is there a pass that optimizes vector operations? If I have for examle a sequence of shufflevector instructions that optimizes them? (in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww) -Jochen
2010 May 14
0
[LLVMdev] vector optimization
Instcombine does of this, late codegen also does some of it. -Chris On May 14, 2010, at 5:58 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > Hi! > > Is there a pass that optimizes vector operations? > If I have for examle a sequence of shufflevector instructions > that optimizes them? > (in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww) > > -Jochen
2011 Dec 29
0
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
I think Chris is saying that the and is necessary because with your i1 trunc you're ignoring all of the high bits. The and implements that. If you don't want this behavior, don't generate the trunc in the first place and just compare the full width to zero. Reid On Wed, Dec 28, 2011 at 6:45 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de>wrote: > > >> Hi! >
2011 Dec 28
3
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
>> Hi! >> >> before InstCombine (llvm::createInstructionCombiningPass()) I have >> a trunc from i8 to i1 and then a select: >> >> %45 = load i8* @myGlobal, align 1 >> %tobool = trunc i8 %45 to i1 >> %cond = select i1 %tobool, float 1.000000e+00, float -1.000000e+00 >> >> after instCombine I have: >> >> %29 = load i8*
2011 Dec 30
3
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
Am 29.12.2011 19:52, schrieb Reid Kleckner: > I think Chris is saying that the and is necessary because with your i1 > trunc you're ignoring all of the high bits. The and implements that. > If you don't want this behavior, don't generate the trunc in the > first place and just compare the full width to zero. But if a backend sees trunc from i8 to i1 it should know
2011 May 18
1
[LLVMdev] optimizing access to global
Hi! I'd like to optimize access to a global (write after read), but I didn't get it to work. I used: passManager.add(llvm::createGlobalsModRefPass()); passManager.add(llvm::createGVNPass()); Are these passes correct to do it? And my global is @global = internal global %0, align 16 I have for example int a = global.a.b[0]; global.a.b[0] = a; // this should be removed Does anybody have
2011 Mar 06
2
[LLVMdev] how to zero-init a global
Hi! I have a module containing a constant e.g. @input = global %0 zeroinitializer, align 16 when I copy the global into another module I use newGlobal->copyAttributesFrom(global); but the new module now has @input = external global %0, align 16 i.e. the zeroinitializer is missing. how do I set it or copy it from the other global? -Jochen
2010 Nov 26
3
[LLVMdev] request for windows unicode support
On 25.11.2010 23:56, Michael Spencer wrote: > On Nov 25, 2010, at 5:01 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de > <mailto:j.wilhelmy at arcor.de>> wrote: > >> Hi! >> >> Of course nobody wants to implement unicode support for windows >> because windows should support an utf8-locale and windows is obsolete >> anyway ;-) >> >> But
2010 Nov 25
0
[LLVMdev] request for windows unicode support
On Nov 25, 2010, at 5:01 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > Hi! > > Of course nobody wants to implement unicode support for windows > because windows should support an utf8-locale and windows is obsolete > anyway ;-) > > But there is a simple solution: use boost::filesystem::path everywhere you > use file names and paths, for example in
2011 Mar 06
0
[LLVMdev] how to zero-init a global
On Sun, Mar 6, 2011 at 9:52 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > I have a module containing a constant e.g. > > @input = global %0 zeroinitializer, align 16 > > when I copy the global into another module I use > newGlobal->copyAttributesFrom(global); > but the new module now has > > @input = external global %0, align 16 > > i.e. the
2010 Mar 03
5
[LLVMdev] folding x * 0 = 0
Hi! > sin/cos etc should already be handled by lib/Analysis/ConstantFolding.cpp. > Thanks for the hint and it works! Now I have a new Problem: I have this function: float foo(float a, float b) { float x = a * b * 0.0f; return cos(0.5) * sin(0.5) * x; }; after compiling it with clang (cpp mode) and renaming _ZSt3sinf to sin and _ZSt3cosf to cos I get the following: define
2010 Nov 25
2
[LLVMdev] request for windows unicode support
Hi! Of course nobody wants to implement unicode support for windows because windows should support an utf8-locale and windows is obsolete anyway ;-) But there is a simple solution: use boost::filesystem::path everywhere you use file names and paths, for example in clang::FileManager::getFile. With version 3 opening a file is easy: std::fstream file(path.c_str()). Internally
2010 Nov 26
2
[LLVMdev] request for windows unicode support
On Fri, 26 Nov 2010 09:28:17 -0500 Michael Spencer <bigcheesegs at gmail.com> wrote: > On Fri, Nov 26, 2010 at 4:00 AM, Jochen Wilhelmy > <j.wilhelmy at arcor.de> wrote: > > No, this post was prompted since I switched to boost::filesystem > > version 3 in my own code and llvm/clang 2.8 > > was the only lib with no unicode support on windows. > > Will your
2010 Nov 26
0
[LLVMdev] request for windows unicode support
On Fri, Nov 26, 2010 at 4:00 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > No, this post was prompted since I switched to boost::filesystem version 3 > in my own code and llvm/clang 2.8 > was the only lib with no unicode support on windows. > Will your code be api compatible to boost::filesystem? No. boost::filesystem makes extensive use of exceptions, which LLVM is
2010 Mar 03
0
[LLVMdev] folding x * 0 = 0
On 3 March 2010 11:56, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > > the sin and cos calls are folded, but not the mul by zero. > Is x*0 => 0 true if isnan(x)? And cos(x)*sin(x) makes me desperately want to fold it to sin(2*x)/2, but I suppose that's not allowed either.
2011 May 25
1
[LLVMdev] ms vc 10 warnings
Hi! when compiling projects using llvm 2.9 and ms vc 10 I get these warnings: 1>e:\Jochen\Lib\lib\include\llvm/Use.h(218): warning C4624: 'llvm::AugmentedUse' : destructor could not be generated because a base class destructor is inaccessible 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdint.h(72): warning C4005: 'INT8_MIN' : macro redefinition
2010 Jul 20
2
[LLVMdev] [cfe-dev] conditional operator
Hello Jochen- Your expectation is incorrect, I'm afraid. Typically this would be expanded to something like this: … %cmp = … br i1 %cmp, label %ternary.true, label %ternary.false ternary.true: %truevalue = … br label %ternary.end ternary.false: %falsevalue = … br label %ternary.end ternary.end: %value = phi %type [%truevalue, %ternary.true], [%falsevalue,
2010 Oct 18
3
[LLVMdev] building only libs with cmake
Now I have -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF but Kaleidoscope is still there and selected for build (-G "Visual Studio 9 2008") -Jochen
2011 Feb 18
2
[LLVMdev] Please add .o writer example to next release
Hi! Is it possible that you add an example how to write a .o with llvm? Just like examples/ModuleMaker but instead of printing to stdout writing a .o file as starting point for the new MC functionality. -Jochen
2010 Jun 24
3
[LLVMdev] DataTypes.h for Visual C
Hi! In DataTypes.h (generated from DataTypes.cmake) there is an extra code path for Visual C. This can produce macro redefinitions for INT8_MAX, INT8_MIN etc. since other headers may also define them. Therefore please protect the macros like INT8_C etc. Also it would be nice if the auto-generated HAVE_STDINT_H and HAVE_INTTYPES_H would be used also for Visual C since it is possible to add them