Displaying 20 results from an estimated 34 matches for "armtargetmachine".
2013 Apr 23
2
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
On Tue, Apr 23, 2013 at 10:29:32AM +0400, Anton Korobeynikov wrote:
> Hello
>
> There is not support for big endian ARM at all.
I guess he need to change the data layout string in
ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp)
from "e" to "E" to get big endian output?
Regards,
chenwj
--
Wei-Ren Chen (陳韋任)
Computer Systems Lab, Institute of Information Science,
Academia Sinica, Taiwan (R.O.C.)
Tel:886-2-2788-3799 #1667
Homepage: http://people.cs.nctu.edu.tw/~...
2013 Apr 23
0
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
> I guess he need to change the data layout string in
> ARMTargetMachine::ARMTargetMachine (ARMTargetMachine.cpp)
> from "e" to "E" to get big endian output?
That would be a start, but I'd expect a significant number of bugs
where the backend writers have assumed ARM was little-endian
(lib/Target/Mips, which *does* support both, has many more...
2012 Jun 03
0
[LLVMdev] Big endian ARM?
...little endian address space.
>
> I've been snooping around, but can't seem to find where the conversion to a
> byte operation is done. Could someone point me in the right direction?
>
I've figured out my problem. I didn't adjust the data layout description string
in ARMTargetMachine.cpp for big endian targets.
This brings up another question. clang has its own set of description strings
for varying ABIs, etc. Should those strings somehow override in the code
generators?
-Rich
2013 Apr 23
0
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
Hello
There is not support for big endian ARM at all.
On Tue, Apr 23, 2013 at 9:26 AM, gamma_chen <gamma_chen at yahoo.com.tw> wrote:
> The llvm ARM backend is little endian elf output as my examination as
> below. Is it support bid endian by other llc options as below?
>
> llc -filetype=obj -march=arm // little endian
> llc -filetype=obj -march=? or -otheroption=? // to
2012 Jun 02
3
[LLVMdev] Big endian ARM?
Hi,
I've been trying to set up clang/LLVM to compile for big endian ARM and I need
a little help. The code generation works for the most part and most of my
regression tests pass, but I noticed that code like this
extern void g(void);
int *p;
int main()
{
if (*p & 0x01000000) g();
}
generates
ldr r0, [r0]
ldrb r0, [r0, #3]
2013 Apr 23
3
[LLVMdev] Is the llvm ARM support big endian elf/obj output?
The llvm ARM backend is little endian elf output as my examination as below. Is it support bid endian by other llc options as below?
llc -filetype=obj -march=arm // little endian
llc -filetype=obj -march=? or -otheroption=? // to output big endian
Jonathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2010 Jan 20
2
[LLVMdev] [LLVMDev] Is it possible to implement target specific optimizations which can be applied after instruction selection or later?
Dear developers.
My question is the same as the title.
Is there any way to implement target specific optimizations after
instruction selection or later?
I cannot find any related document. Please let me know.
Thanks in advance.
Minwook Ahn
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2010 Jan 22
0
[LLVMdev] [LLVMDev] Is it possible to implement target specific optimizations which can be applied after instruction selection or later?
Yes. There are lots of examples of this. For example ARM target has a number of specific optimization passes. See ARMTargetMachine.cpp addPreEmitPass() etc. for examples of how they are added to codegen pass manager.
Evan
On Jan 19, 2010, at 11:34 PM, minwook Ahn wrote:
> Dear developers.
>
> My question is the same as the title.
> Is there any way to implement target specific optimizations after instruction se...
2012 Jun 03
2
[LLVMdev] Big endian ARM?
...gt;>
>> I've been snooping around, but can't seem to find where the conversion to a
>> byte operation is done. Could someone point me in the right direction?
>>
>
> I've figured out my problem. I didn't adjust the data layout description string
> in ARMTargetMachine.cpp for big endian targets.
>
> This brings up another question. clang has its own set of description strings
> for varying ABIs, etc. Should those strings somehow override in the code
> generators?
The current design is that the frontend (if it attaches a TD string) is *required* t...
2009 May 28
0
[LLVMdev] JITCodeEmitter patch - up for comments
...t/PowerPC/PPCCodeEmitter.cpp
* Parameterized to support JITCodeEmitter and in future
ObjectCodeEmitter
lib/Target/PowerPC/PPCJITInfo.h
lib/Target/PowerPC/PPCJITInfo.cpp
* Replaced references to MachineCodeEmitter with JITCodeEmitter.
lib/Target/ARM/ARM.h
lib/Target/ARM/ARMTargetMachine.h
lib/Target/ARM/ARMTargetMachine.cpp
lib/Target/ARM/ARMCodeEmitter.cpp
* Parameterized to support JITCodeEmitter and in future
ObjectCodeEmitter
lib/Target/ARM/ARMJITInfo.h
lib/Target/ARM/ARMJITInfo.cpp
* Replaced references to MachineCodeEmitter with JITCodeEmitter....
2012 Feb 09
1
[LLVMdev] Questions on MachineFunctionPass and relaxation of pcrel calls (ARM/thumb2)
While implementing a MachineFunctionPass that runs as part of the
ARMTargetMachine::addPreEmitPass(), I've run into a problem.
This particular MFP can drastically increase the size (in MachineInstr
count) of the MachineFunction that it processes, so much so that
there is a real danger of pcrel calls and branches that use immediate
offsets to not be sufficient.
A naive test c...
2006 Nov 03
4
[LLVMdev] is createCFGSimplificationPass unused?
...t $17,15,$0
zapnot $16,15,$1
cmpeq $1,$0,$0
beq $0,$BB1_2 #return
$BB1_1: #cond_true
bis $31,$31,$0
ret $31,($26),1
$BB1_2: #return
lda $0,1($31)
ret $31,($26),1
----------------------------------
I have added createCFGSimplificationPass in
ARMTargetMachine::addInstSelector to fix this problem. Is this the
correct solution? I think that more architectures might benefit...
Best Regards,
Rafael
2010 Nov 16
1
[LLVMdev] Build Attributes Proposal
...efinitions, other manufacturers are free to
> ignore.
I think there are several common use cases for these attributes -
1. to mark what ISA a function is compiled for: (i.e. is it a
thumb16/thumb32/ARM?)
2. to constrain the generated code to use specific co-processors.
At least for case 2, the ARMTargetMachine/ARMSubtarget contains a
distinct set of flags which should be output in the file scope section
of the attributes
For case 1, I don't know how common it is for the same executable to
cross thumb boundaries - (given that16bit thumb has limits on register
usage etc..) but I suppose its possible....
2010 Apr 04
1
[LLVMdev] How to specify the subtarget instruction set for LLVM unit in ARM-backend?
Dear developers!
I’d like to ask you a question concerning the implementation of one
algorithm for the generation of energy-efficient code for ARM
processors. Unfortunately, the documentation on this subject is
incomplete on your site, so could you please explain how to implement my
algorithm.
Without going into details, I would like to say, that the implementation
of this algorithm
2010 Jul 23
1
[LLVMdev] "Cannot call createPass on PassInfo without default ctor!"
...to the ARM back end I'm getting quite a lot of this assertion failure:
Pass.cpp:255: llvm::Pass* llvm::PassInfo::createPass() const: Assertion `NormalCtor && "Cannot call createPass on PassInfo without default ctor!"' failed.
A simple way to get it is to add two lines to ARMTargetMachine.cpp:
#include "llvm/Transforms/Scalar.h"
and
PM.add(createSinkingPass());
in addInstSelector just before this line:
PM.add(createARMISelDag(*this, OptLevel));
Then run anything through the ARM back end, for example:
clang -cc1 -triple thumbv7-eabi -O3 -target-cpu cortex-a8 x.c...
2012 Jun 03
0
[LLVMdev] Big endian ARM?
...ng around, but can't seem to find where the
> >> conversion to a byte operation is done. Could someone point me in
> >> the right direction?
> >>
> >
> > I've figured out my problem. I didn't adjust the data layout
> > description string in ARMTargetMachine.cpp for big endian targets.
> >
> > This brings up another question. clang has its own set of
> > description strings for varying ABIs, etc. Should those strings
> > somehow override in the code generators?
>
> The current design is that the frontend (if it attaches...
2012 Sep 17
0
[LLVMdev] Profile Info with Machine Function Pass Fails
...g. I have used MachineProfileInfo and Profile estimator
as dependent passes over my pass. I am sending you the code for my pass.
the error says:
void llvm::PMTopLevelManager::schedulePass(llvm::Pass*): Assertion `PI &&
"Expected required passes to be initialized"' failed.
In *ARMTargetMachine.cpp, function bool
ARMPassConfig::addPreEmitPass() *the following has been added
*PassRegistry &Registry=*PassRegistry::getPassRegistry();
initializeARMInstrStatsPass(Registry);*
The program is executed with the following command :
*clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm...
2006 Nov 03
0
[LLVMdev] is createCFGSimplificationPass unused?
...tionPass was disabled on 2006/09/04.
> This causes some problems for architectures that use conditional moves
> to implement select (alpha and ARM). For example, on 2006/09/03 a "if
> (a) return 0; else return 1;" compiled to
> I have added createCFGSimplificationPass in
> ARMTargetMachine::addInstSelector to fix this problem. Is this the
> correct solution? I think that more architectures might benefit...
Please don't do that. Instead, please implement the TargetInstrInfo
branch analysis hooks so that the branch folding pass can do this.
Given info about branches, the pas...
2014 Nov 18
3
[LLVMdev] [RFC] Embedding command line options in bitcode (PR21471)
..., if the default value is known to be "false".
I also made the following changes in the patch:
1. In the constructor of MachineFunction, call the version of
getSubtargetImpl that takes a Function parameter, so that it gets the
Subtarget specific to the Function being compiled.
2. Change ARMTargetMachine::SubtargetMap to be a DenseMap<Function*,
unique_ptr<ARMSubtarget>>. This is just a temporary change to ease
debugging and should be reverted to a StringMap or changed to another type
of map later.
On Mon, Nov 17, 2014 at 11:40 AM, Eric Christopher <echristo at gmail.com>
wrote:...
2012 Sep 26
0
[LLVMdev] Error while loading profile information
...sis(Registry);
initializeInstrumentation(Registry);
initializeCodeGen(Registry);
initializeTarget(Registry);
printf("\n%s:%d",__FILE__,__LINE__);
fflush(stdout);
return new ARMInstrStats(PIL);
}
}
The following changes have been made to the file ARMTargetMachine.cpp in
the function bool ARMPassConfig::addPreEmitPass():
bool ARMPassConfig::addPreEmitPass() {
if (getARMSubtarget().isThumb2()) {
if (!getARMSubtarget().prefers32BitThumb())
PM->add(createThumb2SizeReductionPass());
// Constant island pass work on unbundled instructions....