Nate Begeman
54eed36da5
Implement the optimization for the Red Zone on Darwin. This removes the
...
unnecessary SP manipulation in leaf routines that don't need it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22522 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-27 06:06:29 +00:00
Chris Lattner
45ff4faeed
fix some warnings when compiled with 32-bit hosts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22521 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-27 05:58:01 +00:00
Jeff Cohen
9eb59ec548
Eliminate tabs and trailing spaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22520 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-27 05:53:44 +00:00
Chris Lattner
50e9ef8792
Testcase for PR607
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22519 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-26 22:08:53 +00:00
Chris Lattner
b65975a6ed
add a note about the red zone
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22518 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-26 19:07:51 +00:00
Chris Lattner
2e00d7d0ae
Wrap some long lines, fix emission of weak global variables
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22517 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-26 19:03:27 +00:00
Nate Begeman
4ad870ddcc
Update the PPC readme
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22516 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-26 18:59:06 +00:00
Chris Lattner
600d73b548
ConvertibleToGEP always returns 0, remove some old crufty code which
...
is actually dead because of this!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22515 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-26 16:38:28 +00:00
Chris Lattner
d6bbac500b
fix a warning on 32-bit systems
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22513 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-25 23:42:58 +00:00
Nate Begeman
7b4f0a81ff
Fix an optimization put in for accessing static globals. This obviates
...
the need to build PIC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22512 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-25 21:15:28 +00:00
Reid Spencer
675267e4e2
Get rid of bash specific syntax for variable dereferencing, replacing it
...
with the more crufty (but more widely available) "eval" command.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22509 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-25 20:25:08 +00:00
Andrew Lenharth
f075cac445
fix compile error
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22508 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-23 07:46:48 +00:00
Chris Lattner
aa68f7fa09
PowerPC no-pic code is not quite ready for prime-time
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22507 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 22:58:34 +00:00
Misha Brukman
ab25eda801
No, really, it's an Alpha! And you probably thought it was a PowerPC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22506 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 22:43:40 +00:00
Andrew Lenharth
6b137d818a
Handle more imm forms, and load small negative i32 constants without hitting memory (should do the same for arbitrary zero extended small negative constants)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22505 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 22:24:01 +00:00
Andrew Lenharth
22894e980f
I know PowerPC wishes it could be alpha, but it cannot. so there
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22504 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 22:00:24 +00:00
Andrew Lenharth
4b429fcf25
make sure we always handle small negatives well
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22503 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 21:53:35 +00:00
Andrew Lenharth
38396f8a93
finally found the gcc defined constants
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22502 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 21:00:30 +00:00
Andrew Lenharth
ddc31e813d
Alpha has JIT
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22501 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:54:01 +00:00
Andrew Lenharth
0934ae02af
Alpha JIT (beta)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22500 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:52:16 +00:00
Andrew Lenharth
f3f951af3f
simpilfy instruction encoding (and make the lines way shorter, aka Misha happification)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22499 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:50:29 +00:00
Andrew Lenharth
908bc862d5
update interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22498 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:49:37 +00:00
Andrew Lenharth
16ec33c6ef
the JIT memory manager will construct a GOT if you want it too. Also, it places the constants in the allocated memory, rather than a malloc area
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22497 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:48:12 +00:00
Andrew Lenharth
6a6b2dbd3a
allow constants to be relocated like GV (necessary for alpha, as constants are relocated with globals, not with .text), and allow targets to have a GOT managed for them
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22496 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-22 20:46:42 +00:00
Chris Lattner
a9562059c2
new testcase for PR602
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22495 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-21 21:55:08 +00:00
Nate Begeman
2497e6391f
Support building non-PIC
...
Remove the LoadHiAddr pseudo-instruction.
Optimization of stores to and loads from statics.
Force JIT to use new non-PIC codepaths.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22494 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-21 20:44:43 +00:00
Chris Lattner
2130c08930
revert to using 4-byte alignment for doubles, as specified by the ABI
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22493 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-21 19:17:18 +00:00
Chris Lattner
a4d7414a59
llvm.sqrt somehow escaped documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22490 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-21 01:29:16 +00:00
Nate Begeman
18ed029a7b
Support assembling fsqrt on darwin. This will be implemented better when
...
PowerPC gets subtarget support up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22489 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-21 01:25:49 +00:00
Chris Lattner
47183e51c2
If errno doesn't matter (e.g. in -ffast-math scenarios), sqrt* should be
...
compiled to llvm.sqrt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22488 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-21 01:09:27 +00:00
Nate Begeman
adeb43ddf4
Generate mfocrf when targeting g5. Generate fsqrt/fsqrts when targetin g5.
...
8-byte align doubles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22486 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-20 22:42:00 +00:00
Misha Brukman
a577437809
* "GNU Compiler Collection's gcc tool" is redundant
...
* Made bullet points start with a verb and lowercase, since they are not
complete sentences
* Cleaned up grammar, removed extraneous verbosity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22485 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-20 21:06:37 +00:00
Chris Lattner
fca3c644ea
Allow this to pass on non-linux systems as well, such as darwin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22484 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-20 19:12:00 +00:00
Chris Lattner
f9944f109c
Do not let MaskedValueIsZero consider undef to be zero, for reasons
...
explained in the comment.
This fixes UnitTests/2003-09-18-BitFieldTest on darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22483 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-20 18:49:28 +00:00
Chris Lattner
e884dc2c58
count the number of relocations performed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22480 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-20 16:29:20 +00:00
Chris Lattner
837451b168
set the target triple so that we don't fail due to X86 abi issues
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22479 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-20 03:56:48 +00:00
Nate Begeman
a3fd400fa8
Integrate SelectFPExpr into SelectExpr. This gets PPC32 closer to being
...
automatically generated from a target description.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22470 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-19 16:51:05 +00:00
Nate Begeman
700a3c97e9
Remove unnecessary FP_EXTEND. This causes worse codegen for SSE.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22469 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-19 16:50:03 +00:00
Reid Spencer
a0f5bf306c
For: memory operations -> stores
...
This is the first incremental patch to implement this feature. It adds no
functionality to LLVM but setup up the information needed from targets in
order to implement the optimization correctly. Each target needs to specify
the maximum number of store operations for conversion of the llvm.memset,
llvm.memcpy, and llvm.memmove intrinsics into a sequence of store operations.
The limit needs to be chosen at the threshold of performance for such an
optimization (generally smallish). The target also needs to specify whether
the target can support unaligned stores for multi-byte store operations.
This helps ensure the optimization doesn't generate code that will trap on
an alignment errors.
More patches to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22468 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-19 04:52:44 +00:00
Chris Lattner
a307978610
remove some sparc-v9-specific information
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22467 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-19 03:37:48 +00:00
Reid Spencer
627cd0005c
Provide descriptions for the TargetInstrInfo and TargetFrameInfo classes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22466 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-19 01:36:35 +00:00
Chris Lattner
7911f03626
When transforming &A[i] < &A[j] -> i < j, make sure to perform the comparison
...
as a signed compare. This patch may fix PR597, but is correct in any case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22465 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-18 23:07:33 +00:00
Chris Lattner
f4d32726e6
The assertion was wrong: the code only worked for i64. While we're at it,
...
expand the code to work for all integer datatypes. This should unbreak
alpha.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22464 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-18 04:31:14 +00:00
Reid Spencer
72f71e18a3
Add a parameter to the FIND_STD_PROGRAM macro that allows an alternate name
...
for the command line options. This helps with situations where the executable
name sought is too generic and a more meaningful name needs to be used for
the command line options. It also helps satisfy picky project leaders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22461 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-17 05:30:33 +00:00
Reid Spencer
a5e26077ed
Add two new checks for use in LLVM configuration files:
...
* FIND_STD_PROGRAM will find a program in the path or using --with options
and verify that the path/bin/program is executable. Also allows checking
for include files and libraries. If found, USE_PROGRAM is set, otherwise
its not set. Also sets PROGRAM_BIN (bin directory), and PROGRAM_DIR (top
level directory). If headers are found, sets PROGRAM_INC. If libraries
are found, sets PROGRAM_LIB.
* CHECK_PROGRAM_SANITY can be used to run a program with some option that
only produces information output and requires no input. If the output
matches a regular expression, the program passes the sanity check.
Otherwise, an error occurs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22458 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-17 00:50:40 +00:00
Chris Lattner
0589523525
Only get the .bss and .data sections when needed instead of unconditionally.
...
This allows is to not emit empty sections when .data or .bss is not used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22457 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-16 17:41:06 +00:00
Chris Lattner
56c3261e34
Add two helper methods, adjust a prototype
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22456 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-16 17:40:34 +00:00
Chris Lattner
0003395320
Refactor getSection() method to make it easier to use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22455 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-16 17:36:04 +00:00
Chris Lattner
5f9cb59f05
Add ability to set TYPE and FLAGS field for section trivially
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22454 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-16 17:35:26 +00:00
Chris Lattner
5f48ff7d1f
Major refactor of the ELFWriter code. Instead of building up one big
...
vector that represents the .o file at once, build up a vector for each
section of the .o file. This is needed because the .o file writer needs
to be able to switch between sections as it emits them (e.g. switch
between the .text section and the .rel section when emitting code).
This patch has no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22453 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-16 08:01:13 +00:00