search for: mrv

Displaying 20 results from an estimated 35 matches for "mrv".

Did you mean: mdrv
2008 Sep 12
2
[LLVMdev] CPP API User-level Question: Returning multiple values
...lue *'s to, but I don't recall having seen one. Unfortunately it's all going to change once we do bring our LLVM up to date with changes made to trunk since the LLVM2.3 release, but do we need to get it working with the LLVM we have for the time being - which means using the 2.3 MRV syntax for the time being. Out of curiosity: does the MRV syntax will still work with first-class aggregates? Thanks! -Tony Scudiero Dan Gohman wrote: > On Sep 12, 2008, at 9:40 AM, Tony Scudiero wrote: > > >> Greetings, >> > > Hi Tony, > &gt...
2008 Sep 12
0
[LLVMdev] CPP API User-level Question: Returning multiple values
...: static ReturnInst* Create(Value * const* retVals, unsigned N, Instruction *InsertBefore) static ReturnInst* Create(Value * const* retVals, unsigned N, BasicBlock *InsertAtEnd) which are what you're looking for. In LLVM trunk, MRV-syntax LLVM assembly files and bitcode files are auto-upgraded to first-class aggregates in the respective readers. However at the C++ API level, clients must be adapted. Dan On Sep 12, 2008, at 1:43 PM, Tony Scudiero wrote: > Dan, > Thanks for the info. Unfortunately for the time being...
2008 Sep 12
3
[LLVMdev] CPP API User-level Question: Returning multiple values
Greetings, I'm working on getting our compiler's interface to LLVM to mimic the way the LLVM-GCC inserts instructions to generate AMD64 ABI compliant code. I'm trying to create ret i64 %mrv, double %double_mrv37 which is basically what LLVM-GCC puts out. However if I use lcc -march=cpp to get the API code I need it has the following line: ReturnInst::Create(int64_t93, label_return); with no reference to the double. I also can't find anything in the doxygen docs for...
2008 Sep 12
0
[LLVMdev] CPP API User-level Question: Returning multiple values
On Sep 12, 2008, at 9:40 AM, Tony Scudiero wrote: > Greetings, Hi Tony, This is an area that's undergone some changes recently. The LLVM 2.3 multiple-return-value (MRV) syntax has been replaced by the first-class aggregates syntax in SVN trunk. > > I'm working on getting our compiler's interface to LLVM to mimic > the > way the LLVM-GCC inserts instructions to generate AMD64 ABI compliant > code. I'm trying to create > >...
2010 Jan 25
0
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hey everybody, I am struggling to get rid of a problem which seems to be related to a multi-return value optimization: I generate bitcode for a c++-function with llvm-g++ which is then linked, transformed and optimized at runtime using LLVM. The function has quite a few parameters, including structs and struct-pointers with 3 float fields. The problem is, that I require the function to preserve
2010 Jan 29
0
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hi Ralf, > llvm-gcc -c -emit-llvm -O3 produces this: > > %struct.float3 = type { float, float, float } > define void @test(double %a.0, float %a.1, %struct.float3* nocapture > %res) nounwind noinline { > entry: > %tmp8 = bitcast double %a.0 to i64 ; <i64> [#uses=1] > %tmp9 = zext i64 %tmp8 to i96 ; <i96> [#uses=1] >
2011 Mar 08
0
[LLVMdev] 64 bit MRV problem; Missed optimizations.
Hi Arushi, > I was tracking the issue discussed earlier, and I was wondering if a bug for the > missed optimizations, was ever filed, and if it has been fixed since? If so in > which llvm version, and more specifically which optimization pass. > > http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-January/028877.html this doesn't really sound like an LLVM optimizer issue, it
2011 Mar 07
3
[LLVMdev] 64 bit MRV problem; Missed optimizations.
Hi, I was tracking the issue discussed earlier, and I was wondering if a bug for the missed optimizations, was ever filed, and if it has been fixed since? If so in which llvm version, and more specifically which optimization pass. http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-January/028877.html Thanks, Regards, Arushi -------------- next part -------------- An HTML attachment was scrubbed...
2008 Jun 09
0
[LLVMdev] Plans considering first class structs and multiple return values
...g a struct directly instead of using an sret argument, sret could > perhaps be removed alltogether? Though I guess there is an ABI difference > between using sret and returning a structure directly? right, there's an ABI difference. Also you can't return variable sized structs using MRV support (I don't know if gcc really supports this, but some pieces of code inside gcc mention functions returning variable sized objects). Ciao, Duncan.
2010 Jan 25
3
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hey everybody, I am struggling to get rid of a problem which seems to be related to a multi-return value optimization: I generate bitcode for a c++-function with llvm-g++ which is then linked, transformed and optimized at runtime using LLVM. The function has quite a few parameters, including structs and struct-pointers with 3 float fields. The problem is, that I require the function to preserve
2011 Jun 24
3
[LLVMdev] multiple return value assembler regression?
It appears the syntax for returning multiple values has changed since 2.9. Previous to that: ret i32 %a, i32 %b worked. The new syntax is something like: ret { i32, i32 }{i32 %a, i32 %b} but this yields an error: mrv-bug.ll:5:24: error: invalid use of function-local name ret { i32, i32 }{i32 %a, i32 %b} ^ If %a and %b are replaced by constants, things work. Am I doing something wrong, or should I file a bug report?
2008 Jun 09
2
[LLVMdev] Plans considering first class structs and multiple return values
...nt, sret >> could >> perhaps be removed alltogether? Though I guess there is an ABI >> difference >> between using sret and returning a structure directly? > > right, there's an ABI difference. Also you can't return variable > sized structs > using MRV support (I don't know if gcc really supports this, but > some pieces of > code inside gcc mention functions returning variable sized objects). Plus it is not a good idea to pass very large structs using MRV. - Devang
2010 Jan 29
2
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hey Duncan, hey everybody else, I just stumbled upon a problem in the latest llvm-gcc trunk which is related to my previous problem with the 64bit ABI and structs: Given the following code: struct float3 { float x, y, z; }; extern "C" void __attribute__((noinline)) test(float3 a, float3* res) { res->y = a.y; } int main(void) { float3 a; float3 res; test(a,
2010 Jan 25
0
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Hi Ralf, > I do not understand why this behaviour is required. What is the problem > in having a function receive a single struct-parameter with three floats > compared to two scalar parameters? > > source-code (C++): > struct Test3Float { float a, b, c; }; > void test(Test3Float param, Test3Float* result) { ... } if you compile this with GCC, you will see that it too
2010 Jan 25
2
[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Uh, sorry, did not pay attention where I was replying ;) Hey Duncan, I do not understand why this behaviour is required. What is the problem in having a function receive a single struct-parameter with three floats compared to two scalar parameters? source-code (C++): struct Test3Float { float a, b, c; }; void test(Test3Float param, Test3Float* result) { ... } bitcode:
2008 Jun 09
3
[LLVMdev] Plans considering first class structs and multiple return values
...yway, it was just an example. In practice, just taking whatever the function is returning now, and put that into a struct together with whatever you want to add and then letting other passes make something pretty out of the resulting extractvalue/insertvalue forest will work just fine. > After MRVs are working really well, I'd like to consider removing the > void type: > http://nondot.org/sabre/LLVMNotes/EliminatingVoid.txt > > This would make it so that calls always return a value, and 'ret' > always takes a value. This would be a nice simplification to the...
2011 Jun 24
0
[LLVMdev] multiple return value assembler regression?
On Jun 24, 2011, at 9:29 AM, Bagel wrote: > It appears the syntax for returning multiple values has changed since 2.9. > Previous to that: > ret i32 %a, i32 %b > worked. The new syntax is something like: > ret { i32, i32 }{i32 %a, i32 %b} > but this yields an error: > mrv-bug.ll:5:24: error: invalid use of function-local name > ret { i32, i32 }{i32 %a, i32 %b} > ^ > If %a and %b are replaced by constants, things work. This is obsolete and deprecated syntax that is dropped in "llvm 3.0" (and thus on mainline right now). I...
2008 Jul 02
0
[LLVMdev] Plans considering first class structs and multiple return values
...d >>> perhaps be removed alltogether? Though I guess there is an ABI >>> difference >>> between using sret and returning a structure directly? >> >> right, there's an ABI difference. Also you can't return variable >> sized structs >> using MRV support (I don't know if gcc really supports this, but >> some pieces of >> code inside gcc mention functions returning variable sized objects). > > Plus it is not a good idea to pass very large structs using MRV. > - > Devang > _______________________________________...
2017 Oct 05
2
Weird bandwith behaviour (download throughput) on CentOS based gateway
Hi. I have a company gateway that is connected to a 30/30 Fiber connection, network termination point is a MRV OS-904. It acts as a firewall/router for the DMZ/hosts/lans behind. Software: CentOS 6.9, bare minimum install, all latest patches. Hardware: Xeon CPU, Intel server MB with two Intel PRO 1000 (e1000, e1000e) network cards, adaptec RAID, 8GB RAM On the hosts/lan behind I can happily achieve 28.8...
2017 Oct 05
0
Weird bandwith behaviour (download throughput) on CentOS based gateway
On Thu, Oct 5, 2017 at 2:41 PM, Jobst Schmalenbach <jobst at barrett.com.au> wrote: > > Hi. > > I have a company gateway that is connected to a 30/30 Fiber connection, > network termination point is a MRV OS-904. > It acts as a firewall/router for the DMZ/hosts/lans behind. > > Software: CentOS 6.9, bare minimum install, all latest patches. > Hardware: Xeon CPU, Intel server MB with two Intel PRO 1000 (e1000, > e1000e) network cards, adaptec RAID, 8GB RAM > > > On the hosts/l...