1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Commit Graph

57601 Commits

Author SHA1 Message Date
Chris Lattner
74715dd299 no need to override IsLegalToFold, the base implementation
disables load folding at -O0.

llvm-svn: 96973
2010-02-23 19:33:11 +00:00
Chris Lattner
f6e9f39042 fix a bug in findNonImmUse (used by IsLegalToFold) where nodes with
no id's would cause early exit allowing IsLegalToFold to return true
instead of false, producing a cyclic dag.

This was striking the new isel because it isn't using SelectNodeTo yet,
which theoretically is just an optimization.

llvm-svn: 96972
2010-02-23 19:32:27 +00:00
Chris Lattner
4d568129c4 Print node ID's in dumps and views if set.
llvm-svn: 96971
2010-02-23 19:31:18 +00:00
Wesley Peck
94cdac52e5 Adding the MicroBlaze backend.
The MicroBlaze is a highly configurable 32-bit soft-microprocessor for
use on Xilinx FPGAs. For more information see:
http://www.xilinx.com/tools/microblaze.htm
http://en.wikipedia.org/wiki/MicroBlaze

The current LLVM MicroBlaze backend generates assembly which can be
compiled using the an appropriate binutils assembler.

llvm-svn: 96969
2010-02-23 19:15:24 +00:00
Chris Lattner
45a2c36ddc use OutStreamer.EmitCodeAlignment for alignment in the text
segment.

llvm-svn: 96967
2010-02-23 18:46:22 +00:00
Chris Lattner
405e4a1d63 genericize MCAsmStreamer::EmitCodeAlignment to support other targets
so that it doesn't break them when the code generator starts using it.

llvm-svn: 96966
2010-02-23 18:44:31 +00:00
Jeffrey Yasskin
0c478ab8af Oops. Pass -lgcc _only_ on ARM, not on everything except ARM.
llvm-svn: 96965
2010-02-23 18:40:48 +00:00
Richard Osborne
eb0446c12a ECALLF, ECALLT shouldn't be marked as barriers.
llvm-svn: 96964
2010-02-23 18:29:49 +00:00
Kevin Enderby
c11390f758 This is the first patch to put the needed bits in place to eventually allow code
to be aligned with optimal nops.  This patch does not change any functionality
and when the compiler is changed to use EmitCodeAlignment() it should also not
change the resulting output.  Once the compiler change is made and everything
looks good the next patch with the table of optimal X86 nops will be added to
WriteNopData() changing the output.  There are many FIXMEs in this patch which
will be removed when we have better target hooks (coming soon I hear).

llvm-svn: 96963
2010-02-23 18:26:34 +00:00
Richard Osborne
9abd3b3ca7 Mark unconditional branches as barriers. Found using -verify-machineinstrs
llvm-svn: 96960
2010-02-23 18:13:38 +00:00
Jeffrey Yasskin
e653785a3d Roll r96559 forward again, adding libLLVM-2.7svn.so to LLVM. This links 3 of
the examples shared to make sure the shared library keeps working.

llvm-svn: 96959
2010-02-23 18:10:07 +00:00
David Greene
dad0944642 Speed up cycle checking significantly by caching results.
llvm-svn: 96956
2010-02-23 17:37:50 +00:00
Dan Gohman
b3bf4992c5 Don't do (X != Y) ? X : Y -> X for floating-point values; it doesn't
handle NaN properly.

Do (X une Y) ? X : Y  -> X if one of X and Y is not zero.

llvm-svn: 96955
2010-02-23 17:17:57 +00:00
Jim Grosbach
0525cd8596 Spelling. s/suppor /support /
llvm-svn: 96954
2010-02-23 17:16:27 +00:00
Dan Gohman
5a6b9ad7db Remove the code which constant-folded ptrtoint(inttoptr(x)+c) to
getelementptr. Despite only doing so in the case where x is a known
array object and c can be converted to an index within range, this
could still be invalid if c is actually the address of an object
allocated outside of LLVM. Also, SCEVExpander, the original motivation
for this code, has since been improved to avoid inttoptr+ptroint in
more cases.

llvm-svn: 96950
2010-02-23 16:35:41 +00:00
Garrison Venn
3d6630be49 Modified examples Makefile to only build the ExceptionDemo example for
x86 and x86_64 on UNIX systems. Only OS X 10.6.2 (x86_64) and 32bit CentOS 5.2
with gcc 4.1.2 were tested. ARM UNIX build triggered failure motivating this
modification, as it seems that the ARM ABI does not support _Unwind_GetIP(...),
_Unwind_SetGR(...), and _Unwind_SetIP(...). From doing a quick browse of:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038a/IHI0038A_ehabi.pdf,
it seems as if all other exception related apis are supported. Looks like
the port can be done to ARM. Thanks to Xerxes Rånby <xerxes@zafena.se> for
pointing out this error.

llvm-svn: 96949
2010-02-23 16:27:59 +00:00
Wesley Peck
6b601b5704 Testing subversion commit access
llvm-svn: 96948
2010-02-23 15:11:17 +00:00
Mikhail Glushenkov
21c7a63ce6 Fix -mtune forwarding.
llvm-svn: 96944
2010-02-23 14:29:42 +00:00
Richard Osborne
ff660d72eb Remove unused lowering function LowerJumpTable
llvm-svn: 96943
2010-02-23 14:17:20 +00:00
Richard Osborne
7387249531 Lower BR_JT on the XCore to a jump into a series of jump instructions.
llvm-svn: 96942
2010-02-23 13:25:07 +00:00
Daniel Dunbar
64810b7bc6 tests: Don't make a missing llvm-gcc dir a fatal error.
llvm-svn: 96938
2010-02-23 11:34:12 +00:00
Daniel Dunbar
31196b6778 Switch .bc/.ll Makefile rules to use LLVM{CC,CXX} instead of LLVMG{CC,XX}
llvm-svn: 96936
2010-02-23 10:28:06 +00:00
Daniel Dunbar
bfb3858de0 Add LLVM{CC,CXX} make variables, which specify the configured path the LLVM
capable compilers (which could be llvm-gcc or clang).

llvm-svn: 96935
2010-02-23 10:00:53 +00:00
Daniel Dunbar
df02a93faa Initial configure support for using Clang as the LLVM capable compiler.
Comes in two parts:
 1. Use --with-clang=path/to/clang/compiler to select an installed clang, or
    --with-built-clang to have the makefiles use the clang which will be built
    as the LLVM capable compiler. If neither is given, --with-built-clang will
    be used if the Clang sources are checked out into the standard location
    (tools/clang).

 2. Use --with-llvmcc={llvm-gcc,clang,none} to specify which LLVM capable
    compiler to use. If not given, then llvm-gcc will be used if available,
    otherwise Clang.

Makefile support still to come.

Eric, Doug, Chris, seem reasonable?

llvm-svn: 96934
2010-02-23 10:00:49 +00:00
Mikhail Glushenkov
4a7ee0bea5 Update mcc16 and the ancient Clang plugin for the 'cmd_line' -> 'command' change.
llvm-svn: 96933
2010-02-23 09:59:30 +00:00
Daniel Dunbar
9bc9ef2cff Eliminate CFERuntimeLibDir make variable, this shouldn't be needed.
llvm-svn: 96932
2010-02-23 09:28:50 +00:00
Daniel Dunbar
1969fc6dd7 Fix a thinko in the lit.cfg.
llvm-svn: 96931
2010-02-23 09:28:48 +00:00
Mikhail Glushenkov
3cd3e0df5f Input files with empty suffixes must be passed to linker.
llvm-svn: 96927
2010-02-23 09:05:21 +00:00
Mikhail Glushenkov
8a3109fb8e Support -Xlinker et al.
llvm-svn: 96926
2010-02-23 09:05:15 +00:00
Mikhail Glushenkov
ce7b3292dd Temporary disable response files.
They are giving us problems on Mac.

llvm-svn: 96925
2010-02-23 09:05:10 +00:00
Mikhail Glushenkov
e14b9c7b16 Typo.
llvm-svn: 96924
2010-02-23 09:05:06 +00:00
Mikhail Glushenkov
653efea01f Trailing whitespace.
llvm-svn: 96923
2010-02-23 09:05:01 +00:00
Mikhail Glushenkov
c47f951a86 Implement order-preserving option forwarding.
Needed to correctly handle things like 'llvmc -framework Foo foo.o -framework
Bar bar.o' - before this commit all '-framework' options would've been grouped
together in the beginning.

Due to our dependence on CommandLine this turned out to be a giant hack; we will
migrate away from CommandLine eventually.

llvm-svn: 96922
2010-02-23 09:04:57 +00:00
Mikhail Glushenkov
997887add1 Update the test suite.
llvm-svn: 96921
2010-02-23 09:04:51 +00:00
Mikhail Glushenkov
232ae779ee Correct option forwarding: initial implementation.
Does not work, but the infrastructure changes are in place.

llvm-svn: 96920
2010-02-23 09:04:44 +00:00
Mikhail Glushenkov
328ae37049 Precompiled headers: initial support.
llvm-svn: 96919
2010-02-23 09:04:33 +00:00
Mikhail Glushenkov
d030cced3d New experimental/undocumented feature: 'works_on_empty'.
For now, just enough support to make -filelist work.

llvm-svn: 96918
2010-02-23 09:04:28 +00:00
Mikhail Glushenkov
e213e3cbb6 Support '-install_name'.
llvm-svn: 96917
2010-02-23 09:04:18 +00:00
Mikhail Glushenkov
947daddd81 Add a way to enable '-opt=foo' forwarding.
llvm-svn: 96916
2010-02-23 09:04:13 +00:00
Daniel Dunbar
d12f02283c Inline and eliminate LLVMG{CC,XX}WITHPATH.
llvm-svn: 96913
2010-02-23 07:56:41 +00:00
Daniel Dunbar
6da0c399f0 Remove ancient Xcode project, replaced by CMake project.
llvm-svn: 96912
2010-02-23 07:56:38 +00:00
Daniel Dunbar
debaef15e9 Remove dead LUPGRADE make variable.
llvm-svn: 96911
2010-02-23 07:56:36 +00:00
Daniel Dunbar
e6be4dadf2 Kill off unused LLVMGCCLIBEXEC make variable.
llvm-svn: 96910
2010-02-23 07:56:34 +00:00
Daniel Dunbar
ad1465c21b Kill off LLVMGCCARCH and LLVMGCC_VERSION make variables.
llvm-svn: 96909
2010-02-23 07:56:31 +00:00
Daniel Dunbar
93911572ff Eliminate llvmgcc_version testing variable.
llvm-svn: 96908
2010-02-23 07:56:28 +00:00
Daniel Dunbar
9774a591a4 Kill off LLVMGCC_MAJVERS make variable.
llvm-svn: 96907
2010-02-23 07:56:22 +00:00
Daniel Dunbar
cb977c7241 Kill unused llvmgccmajvers testing variable.
llvm-svn: 96906
2010-02-23 07:56:18 +00:00
Chris Lattner
5b5d31f533 add some #if 0'd out code for checking that named values in
input/output patterns have the same type.  It turns out that 
this triggers all the time because we don't infer types 
between these boundaries.  Until we do, don't turn this on.

llvm-svn: 96905
2010-02-23 07:50:58 +00:00
Chris Lattner
8b5a000583 Reject patterns that use a name multiple times in the src or result
of a pattern and where the uses have different types.

llvm-svn: 96904
2010-02-23 07:22:28 +00:00
Chris Lattner
e7f90b31ad disable two patterns that are using non-sensical result pattern types.
llvm-svn: 96903
2010-02-23 07:21:15 +00:00