Bill Wendling
d35fbe4595
The x86 jit doesn't generate a def_cfa_offset unwind instruction after the
...
pushes in the function prolog if the function doesn't have any stack space,
i.e. for a prolog like:
0x40011870: push %r15
0x40011872: push %r14
0x40011874: push %rbx
Patch by Zoltan!
llvm-svn: 77919
2009-08-02 22:25:37 +00:00
Daniel Dunbar
31b44e8f6c
Normalize Subtarget constructors to take a target triple string instead of
...
Module*.
Also, dropped uses of TargetMachine where unnecessary. The only target which
still takes a TargetMachine& is Mips, I would appreciate it if someone would
normalize this to match other targets.
llvm-svn: 77918
2009-08-02 22:11:08 +00:00
Jakob Stoklund Olesen
7dc3b72685
Remove unneeded intrinsics from Blackfin backend.
...
__builtin_bfin_ones does the same as ctpop, so it can be implemented in the front-end.
__builtin_bfin_loadbytes loads from an unaligned pointer with the disalignexcpt instruction. It does the same as loading from a pointer with the low bits masked. It is better if the front-end creates a masked load. We can always instruction select the masked to disalignexcpt+load.
We keep csync/ssync/idle. These intrinsics represent instructions that need workarounds for some silicon revisions. We may even want to convert inline assembler to intrinsics to enable the workarounds.
llvm-svn: 77917
2009-08-02 21:49:05 +00:00
Nick Lewycky
133d9105d3
Fix the build for people with oprofile installed.
...
llvm-svn: 77914
2009-08-02 20:51:44 +00:00
Daniel Dunbar
381b89d3f1
Empty arguments need to be quoted on Win32.
...
llvm-svn: 77913
2009-08-02 20:41:09 +00:00
Jakob Stoklund Olesen
185eb035e9
Fix issue in regscavenger when scavenging a callee-saved register that has not been spilled.
...
llvm-svn: 77912
2009-08-02 20:29:41 +00:00
Edward O'Callaghan
4bf58b8add
One two many newlines at end of file LLVMContextImpl.cpp
...
llvm-svn: 77911
2009-08-02 20:06:26 +00:00
Daniel Dunbar
b3f40651d3
Adjust comment to distinguish between target name and triple target name they
...
match.
llvm-svn: 77908
2009-08-02 19:41:20 +00:00
Edward O'Callaghan
2dd529c9ef
Fix no newline at end of LLVMContextImpl.cpp
...
llvm-svn: 77907
2009-08-02 19:38:12 +00:00
Jakob Stoklund Olesen
c59cd9bcd0
Never add a kill flag to a constrained physical register in a two-addr instruction.
...
llvm-svn: 77906
2009-08-02 19:13:03 +00:00
Jakob Stoklund Olesen
5d52bfbbc9
Scavenger asserts.
...
Allow imp-def and imp-use of anything in the scavenger asserts, just like the machine code verifier.
Allow redefinition of a sub-register of a live register.
llvm-svn: 77904
2009-08-02 18:28:41 +00:00
Jakob Stoklund Olesen
2a21149b20
Add some basic blackfin intrinsics.
...
llvm-svn: 77903
2009-08-02 18:28:11 +00:00
Jakob Stoklund Olesen
ddddf2d549
Add support for CPU features (i.e., bugs) and workarounds.
...
This is just the framework to identify the needed workarounds. They are not actually implemented.
llvm-svn: 77902
2009-08-02 18:27:36 +00:00
Jakob Stoklund Olesen
b052972a58
Inline assembly support for Blackfin.
...
We use the same constraints as GCC, including those that are slightly insane for inline assembler.
llvm-svn: 77899
2009-08-02 17:39:17 +00:00
Jakob Stoklund Olesen
526e803f6a
Build Blackfin target with autoconf and cmake.
...
Note that configure was edited by hand. Will somebody with the correct version of autoconf please regenerate?
llvm-svn: 77898
2009-08-02 17:32:37 +00:00
Jakob Stoklund Olesen
552d8d6618
Analog Devices Blackfin back-end.
...
Generate code for the Blackfin family of DSPs from Analog Devices:
http://www.analog.com/en/embedded-processing-dsp/blackfin/processors/index.html
We aim to be compatible with the exsisting GNU toolchain found at:
http://blackfin.uclinux.org/gf/project/toolchain
The back-end is experimental.
llvm-svn: 77897
2009-08-02 17:32:10 +00:00
Dan Gohman
3f323847bc
Avoid forming a SELECT_CC in a type that the target doesn't
...
support. This isn't immediately interesting, because Legalize
ends up lowering SELECT_CC if the target doesn't support it,
but this simplifies the process.
Also, if the SELECT_CC would be expanded in Legalize, it
can potentially end up with two copies of the condition
expression. By leaving it as SELECT+SETCC, the SELECT can be
expanded into two SELECTs that use a single SETCC.
The two comparisons are usually CSE'd, but depending on
when various expressions get legalized, the comparison
expression could involve calls to library functions, such
that the comparison expression may not be able to be CSE'd.
This will be needed by a future patch.
llvm-svn: 77896
2009-08-02 16:19:38 +00:00
Dan Gohman
757eee8a27
Fix indentation.
...
llvm-svn: 77895
2009-08-02 16:10:52 +00:00
Dan Gohman
73efcaf6e1
Add a comment.
...
llvm-svn: 77894
2009-08-02 16:10:01 +00:00
Dan Gohman
1ccfa8bdc1
Resync lea32addr and lea64addr.
...
llvm-svn: 77893
2009-08-02 16:09:17 +00:00
Benjamin Kramer
666cf9d2f2
Remove duplicated colons and spaces.
...
llvm-svn: 77892
2009-08-02 12:13:02 +00:00
Jakob Stoklund Olesen
f70d50419e
Handle <undef> flag in machine code verifier.
...
Use of an <undef> register is treated like an <imp-use>. It is not an error to use a dead <undef> register.
llvm-svn: 77890
2009-08-02 07:38:21 +00:00
Chris Lattner
1472cf5b3f
move dwarf debug info section selection stuff from TAI to
...
TLOF, unifying all the dwarf targets at the same time.
llvm-svn: 77889
2009-08-02 07:24:22 +00:00
Chris Lattner
c784feba8e
convert EHFrameSection to be managed by TLOF instead of TAI.
...
llvm-svn: 77888
2009-08-02 06:52:36 +00:00
Chris Lattner
bdde99bd42
I need Triple information, 10.6 shouldn't set this, it bloats
...
object files.
llvm-svn: 77887
2009-08-02 06:51:58 +00:00
Chris Lattner
8a0db7516e
ARM TAI no longer needs a TM, but createTargetAsmInfo() still does.
...
llvm-svn: 77878
2009-08-02 05:23:52 +00:00
Chris Lattner
e98a3c3ca3
Move the getInlineAsmLength virtual method from TAI to TII, where
...
the only real caller (GetFunctionSizeInBytes) uses it.
The custom ARM implementation of this is basically reimplementing
an assembler poorly for negligible gain. It should be removed
IMNSHO, but I'll leave that to ARMish folks to decide.
llvm-svn: 77877
2009-08-02 05:20:37 +00:00
Chris Lattner
0161419259
move a virtual method body to its .cpp file to avoid a #include
...
in a header.
llvm-svn: 77874
2009-08-02 04:58:19 +00:00
Chris Lattner
1fe76c385b
turn some templated inline functions into static functions.
...
llvm-svn: 77873
2009-08-02 04:52:00 +00:00
Chris Lattner
df672c2bb2
alpha TAI doesn't need TM.
...
llvm-svn: 77872
2009-08-02 04:46:05 +00:00
Chris Lattner
d4c8fd44ee
MSP430 TAI doesn't need TM.
...
llvm-svn: 77871
2009-08-02 04:45:22 +00:00
Chris Lattner
d45a7860ec
simplify SPULinuxTargetAsmInfo, remove use of TM.
...
llvm-svn: 77869
2009-08-02 04:44:33 +00:00
Chris Lattner
2be66ce420
xcore TAI doesn't need TM.
...
llvm-svn: 77868
2009-08-02 04:42:09 +00:00
Chris Lattner
3ea23cff65
PIC16 TAI doesn't need TM
...
llvm-svn: 77867
2009-08-02 04:41:14 +00:00
Chris Lattner
fb53861ee0
remove the dead ELFTargetAsmInfo.h/cpp file. TargetAsmInfo
...
defaults to being ELF.
llvm-svn: 77866
2009-08-02 04:33:09 +00:00
Chris Lattner
7ee0246f51
eliminate the TM argument to the TAI class, remove comment about supporting
...
solaris :)
llvm-svn: 77865
2009-08-02 04:32:07 +00:00
Chris Lattner
d39874e6ec
eliminate TargetMAchine argument to sparc TAI
...
llvm-svn: 77864
2009-08-02 04:30:59 +00:00
Chris Lattner
b25afe081c
remove TargetAsmInfo::TM, which is now dead. The basic TAI class now
...
no longer depends on TM!
llvm-svn: 77863
2009-08-02 04:27:24 +00:00
Chris Lattner
cecdb9e772
remove the x86/ppc impls of getEHGlobalPrefix, which is already dead.
...
llvm-svn: 77861
2009-08-02 04:13:22 +00:00
Daniel Dunbar
2eaf396c41
Add missing flush().
...
llvm-svn: 77859
2009-08-02 04:12:28 +00:00
Chris Lattner
f526fb7e9a
clean up #includes of TargetAsmInfo.cpp
...
llvm-svn: 77858
2009-08-02 04:09:22 +00:00
Chris Lattner
77f686713f
move an enum from TM -> TargetOptions. This makes TargetOptions.h
...
be self contained, and it isn't used from TM.h
llvm-svn: 77857
2009-08-02 04:08:52 +00:00
Chris Lattner
29c6c43cd0
remove the dead PreferredEHDataFormat TAI hook: its now dead
...
even considering #if 0 code.
llvm-svn: 77856
2009-08-02 04:02:52 +00:00
Chris Lattner
7005cd3fa0
Fix some fixme's in #if 0'd code by making it dependent on the structural
...
behavior of the LSDA section instead of on some random target hook that
needs to be kept in synch with other points of truth.
llvm-svn: 77855
2009-08-02 03:59:56 +00:00
Evan Cheng
8e3889f12e
Test both darwin and linux.
...
llvm-svn: 77852
2009-08-02 02:54:34 +00:00
Chris Lattner
c16c75ea9b
move getDwarfExceptionSection from TAI to TLOF and rename it to
...
getLSDASection() to be more specific. This makes it pretty obvious
that the ELF LSDA section is being specified wrong in PIC mode. We're
probably getting a lot of startup-time relocations to a readonly page,
which is expensive and bad.
Someone who cares about ELF C++ should investigate this.
llvm-svn: 77847
2009-08-02 01:34:32 +00:00
Daniel Dunbar
cc5e54e986
Fix a possible crash on delete of an uninitialized variable.
...
llvm-svn: 77846
2009-08-02 01:25:15 +00:00
Daniel Dunbar
6eca7ab91c
Fix an ENABLE_EXPENSIVE_CHECKS error.
...
llvm-svn: 77845
2009-08-02 01:21:22 +00:00
Dan Gohman
321dc97adf
Don't call SectionForGlobal for hasAvailableExternallyLinkage()
...
variables either.
llvm-svn: 77844
2009-08-02 01:18:44 +00:00
Chris Lattner
a17d2e5c21
don't call SectionForGlobal on declarations, you can't tell the section a
...
declaration will end up in.
llvm-svn: 77843
2009-08-02 01:02:43 +00:00