Displaying 20 results from an estimated 2000 matches similar to: "[BUG Report] -dead_strip, strips prefix data unconditionally on macOS"
2017 Mar 06
6
[BUG Report] -dead_strip, strips prefix data unconditionally on macOS
That is in theory what omitting the .subsections_via_symbols directive is
supposed to do, but in an experiment I ran a year or two ago I found that
the Mach-O linker was still dead stripping on symbol boundaries with this
directive omitted.
In any case, a more precise approach has more recently (~a few months ago)
become possible. There is a relatively new asm directive called .altentry
that, as
2017 Mar 07
2
[BUG Report] -dead_strip, strips prefix data unconditionally on macOS
On Mon, Mar 6, 2017 at 5:54 PM, Moritz Angermann <moritz.angermann at gmail.com
> wrote:
> Hi Peter,
>
> I’ve just experimented with this a bit:
>
> Say we would end up with the following assembly:
>
> .section __TEXT,__text
> .globl _main
>
> .long 1
> _main:
> inc %eax
> ret
>
> .globl _main.dsp
> .alt_entry _main.dsp
2017 Mar 07
4
[BUG Report] -dead_strip, strips prefix data unconditionally on macOS
Firstly, do you need "main.dsp" defined as an external symbol, or can all
external references go via "main"? If the answer is the latter, that will
make the solution simpler.
If only the latter, you will need to make a change to LLVM here:
http://llvm-cs.pcc.me.uk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp#650
Basically you would need to add a hook to the TargetLoweringObjectFile
2017 Mar 07
2
[BUG Report] -dead_strip, strips prefix data unconditionally on macOS
I suspect that the format isn't important if you do that, but I wouldn't
recommend it, at least because inlining (and other inter-procedural
optimizations) are not expected to work correctly if you produce IR like
that.
Peter
On Mon, Mar 6, 2017 at 6:44 PM, Moritz Angermann <moritz.angermann at gmail.com
> wrote:
> Peter,
>
> thanks again! Yes, we only need to refer to
2017 Mar 07
2
[BUG Report] -dead_strip, strips prefix data unconditionally on macOS
> On Mar 6, 2017, at 7:56 PM, James Y Knight via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Oh, that's great that it's possible to implement properly, now. Does it actually work for
>
> It'd be cool if LLVM hooked up its generic section handling support to this feature now, so that the only global symbols that *didn't* get marked as .alt_entry were
2016 Feb 09
2
Modified LLVM IR
Hi,
I want to edit LLVM generated IR file, like as given below,
Original LLVM IR file,
@.str2 = private unnamed_addr constant [17 x i8] c"\0AI am in
one_11\0A\00", align 1
; Function Attrs: nounwind
define i32 @one_1(i32 %ivar1, i32 %ivar2) #0 {
entry:
%ivar1.addr = alloca i32, align 4
%ivar2.addr = alloca i32, align 4
%isum = alloca i32, align 4
store i32 %ivar1, i32*
2012 Jan 27
2
[LLVMdev] How to get the string value?
Hi, if I have some LLVM code like this:
@.str = private unnamed_addr constant [7 x i8] c"in_arr\00", align 1
@.str1 = private unnamed_addr constant [8 x i8] c"in_arr2\00", align 1
@.str2 = private unnamed_addr constant [8 x i8] c"out_arr\00", align 1
...
...
call void (...)* @_Z16fooz(i8* *getelementptr inbounds ([7 x i8]* @.str,
i64 0, i64 0)*, i32 0, i32 1024)
2016 Feb 10
2
Modified LLVM IR
Hi,
I want to call/add some functions(that defined in another file) on top of
some functions, and reflect the same changes in object file.
No, I am not looking for contractor.
Thanks,
Deepika
On Tue, Feb 9, 2016 at 7:04 PM, mats petersson <mats at planetcatfish.com>
wrote:
> What is the condition for adding this code?
>
> What have you tried so far? [Or are you looking for a
2014 Jul 10
2
[LLVMdev] Telling the optimizer a value is always null at the start
How do I tell the optimizer that the (dereferenced) value of an i8**
parameter is NULL at the start so that it can eliminate the check?
I have code like:
void test2(void** ex) {
printf("go\n"); // does not change *ex
}
void call2(void** ex);
void testeh(void** ex) {
// I want to tell the optimizer *ex is null so it can eliminate the
first
2018 Jan 07
2
Beginner question: Calling intrinsic
Hello,
I’m not sure if this is the right place to ask beginner questions.
If not, please direct me to the appropriate place.
I’m writing my first llvm program and I’m trying to call an intrinsic, but
failing.
So far this is what I have:
declare ccc i32 @llvm.x86.bmi.pdep.32(i32, i32)
@.str2 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
declare i32 @printf(i8*, ...)
2016 Feb 10
2
Modified LLVM IR
Hi,
Yes I am looking for IR pass that will do insert call of functions that
defined in another file.
Links/suggestions that guide me to start for adding IR pass will help me so
much.
Regards,
Deepika
On Wed, Feb 10, 2016 at 1:03 PM, mats petersson <mats at planetcatfish.com>
wrote:
> So how do you know what you want to modify (conceptually)?
>
> Have you got a IR pass that you
2012 Jan 27
3
[LLVMdev] How to get the string value?
Thanks Duncan,
Yes, it is a ConstantExpr! Thank you!
Now trying to find a clue in ConstantExpr's functions to get that string :-)
Regards,
Welson
On Thu, Jan 26, 2012 at 9:04 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Welson Sun,
>
> > Hi, if I have some LLVM code like this:
> >
> > @.str = private unnamed_addr constant [7 x i8]
2016 Feb 10
2
Modified LLVM IR
Hi,
My requirement is something like as given below,
a.c => a.obj contains a1() and a2() function
b.c => b.obj contains b1() and b2() function
main.c => main.obj call to a1, a2, b1, b2
Now, I want to move a1(), a2() from a.obj to b2.obj and on top of function
b1()
When I call b1() from main, it should call first a1, a2 and then function
definition of b1
Can you please give me some
2012 Jan 27
0
[LLVMdev] How to get the string value?
Hi Welson Sun,
> Hi, if I have some LLVM code like this:
>
> @.str = private unnamed_addr constant [7 x i8] c"in_arr\00", align 1
> @.str1 = private unnamed_addr constant [8 x i8] c"in_arr2\00", align 1
> @.str2 = private unnamed_addr constant [8 x i8] c"out_arr\00", align 1
> ...
> ...
>
> call void (...)* @_Z16fooz(i8* *getelementptr
2018 Jan 07
0
Beginner question: Calling intrinsic
Hi John,
What targer are you trying to compile this for? I imagine this is just a
case of using an X86 intrinsic on a non-X86 back end. Or is this an
intrinsic you added and didn't provide a selection pattern for?
In any case, this intrinsic makes it into the selection DAG and the
instruction selector tries to select a sequence of instructions for it.
However, it fails to find a pattern that
2018 Jan 08
1
Beginner question: Calling intrinsic
If you are using x86, you probably need to pass something like
-mcpu=haswell or -mattr=bmi2 to enable support for the intrinsic. It seems
to -mcpu=native doesn't work for lli so it can't just autodetect your CPU.
~Craig
On Sun, Jan 7, 2018 at 7:54 AM, Nemanja Ivanovic via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hi John,
> What targer are you trying to compile this
2012 Jan 28
0
[LLVMdev] How to get the string value?
Hi Welson,
> Yes, it is a ConstantExpr! Thank you!
>
> Now trying to find a clue in ConstantExpr's functions to get that string :-)
you can get the pointer operand by doing: getOperand(0)
The i'th index is getOperand(i+1).
Ciao, Duncan.
>
> Regards,
> Welson
>
> On Thu, Jan 26, 2012 at 9:04 PM, Duncan Sands <baldrick at free.fr
> <mailto:baldrick at
2012 Jan 28
1
[LLVMdev] How to get the string value?
Hey Duncan,
Thanks! I figured out this piece of code finally:
Value *gep = call->getArgOperand(0);
if ( ConstantExpr *pCE = dyn_cast<ConstantExpr>(gep) ) {
Value *firstop = pCE->getOperand(0);
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(firstop)){
Constant *v = GV->getInitializer();
if
2011 Aug 10
2
using if then statements in a dataframe
I used this service several months ago and was very pleased with the response.
I have a dataframe with several thousand lines and to each line I need to apply a series of "if else" statements. For each row I need either a value or a blank/NA. Below is the series of if else statements I have been trying without success to integrate into a function such as "apply".
if
2016 Nov 28
2
Looking for help with an ast matcher
Hi Piotr,
I think I found a working matcher: match
ifStmt(hasCondition(implicitCastExpr(hasImplicitDestinationType(isInteger()),
has(cxxMemberCallExpr(callee(cxxMethodDecl(hasName("compare"))),
hasArgument(0, declRefExpr().bind("str2")),
callee(memberExpr(has(declRefExpr().bind("str1"))))))))).bind("case1")
This one bind to both str1 and str2 in