Dan Gohman
d761480fe4
Partial CBackend support for 128-bit integers. This is needed
...
now that llvm-gcc is lowering appropriately-sized struct returns
to i128 on x86-64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49109 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 19:40:14 +00:00
David Greene
a022e3fc2f
Iterators folloring a SmallVector erased element are invalidated so
...
don't access cached iterators from after the erased element.
Re-apply 49056 with SmallVector support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49106 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 18:24:46 +00:00
Evan Cheng
ea1d9cdc4e
Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49105 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 18:04:08 +00:00
Evan Cheng
1088317675
Remove #include<map> from LiveVariables.h. Not referenced.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49099 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 17:23:50 +00:00
Dale Johannesen
e00406281d
Cosmetic changes per EH patch review feedback.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49096 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 17:04:45 +00:00
Torok Edwin
56c2f99f00
Add new file Support/DataFlow.h.
...
It allows Use-Def and Def-Use relations to be treated as graphs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49088 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 14:57:52 +00:00
Anton Korobeynikov
67073f1cbd
Add new CC lowering rule: provide a list of registers, which can be 'shadowed',
...
when some another register is used for argument passing.
Currently is used on Win64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49079 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 05:23:57 +00:00
Owen Anderson
52b1733df4
In some situations, we need to check for local interferences between the PHI
...
node and its inputs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49070 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 03:00:13 +00:00
Owen Anderson
59df878391
Correctly mark a valno that was previous defined by a PHI node as having an
...
unknown defining inst after PHI elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49069 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 02:12:45 +00:00
Chris Lattner
4316dec10e
more edits from Jon Sargeant
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49065 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 00:38:26 +00:00
Dale Johannesen
1532f3ddd7
Recommitting EH patch; this should answer most of the
...
review feedback.
-enable-eh is still accepted but doesn't do anything.
EH intrinsics use Dwarf EH if the target supports that,
and are handled by LowerInvoke otherwise.
The separation of the EH table and frame move data is,
I think, logically figured out, but either one still
causes full EH info to be generated (not sure how to
split the metadata correctly).
MachineModuleInfo::needsFrameInfo is no longer used and
is removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02 00:25:04 +00:00
Evan Cheng
7c3becd9d7
1. Drop default inline threshold back down to 200.
...
2. Do not use # of basic blocks as part of the cost computation since it doesn't really figure into function size.
3. More aggressively inline function with vector code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49061 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 23:59:29 +00:00
Tanya Lattner
48afd9f8a9
Reverting 49056 due to the build being broken.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49060 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 23:41:44 +00:00
Evan Cheng
ffe2eb0120
ReMat of load from stub in pic mode extends the life of pic base. Currently spiller doesn't do a good job of estimating the impact. Disable for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49059 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 23:26:12 +00:00
David Greene
da2903f028
Iterators folloring a SmallVector erased element are invalidated so
...
don't access cached iterators from after the erased element.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49056 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 22:14:23 +00:00
Bill Wendling
a442006f48
Fix compilation errors on MSVC. Patch by Argiris Kirtzidis!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49055 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 22:09:20 +00:00
Evan Cheng
247faffb32
Remove unnecessary and non-deterministic checking code. Re-enable remat of load from gv stub.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49054 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 21:38:20 +00:00
Evan Cheng
3c75ba858b
Re-materialization is for uses only.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49053 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 21:37:32 +00:00
Dan Gohman
38c92263eb
Don't use __bzero for memset if the second argument isn't zero.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 20:56:18 +00:00
Dan Gohman
68d599df37
Speculatively micro-optimize memory-zeroing calls on Darwin 10.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 20:38:36 +00:00
Dale Johannesen
b6d5b14390
Revert 49006 for the moment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49046 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 20:00:57 +00:00
Chris Lattner
5a15814098
add a dropped hunk from Jon Sargeant's patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49045 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 18:47:32 +00:00
Chris Lattner
a73afe00b2
make langref more precise, wave 1, from Jon Sargeant
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49044 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 18:45:27 +00:00
Owen Anderson
78216bc9f8
Don't dereference MBB->end().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49043 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 18:05:08 +00:00
Chris Lattner
038112a4e0
Change the MemoryBuffer::getFile* methods to take just a pointer to the
...
start of a filename, not a filename+length. All clients can produce a
null terminated name, and the system api's require null terminated
strings anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49041 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 18:04:03 +00:00
Chris Lattner
8eedc9ee2c
minor typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49040 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 18:02:36 +00:00
Evan Cheng
78b6ce3981
Disabling remat of load from gv stub (temporarily) again to fix llvmgcc bootstrap miscompare.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49037 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 07:33:13 +00:00
Chris Lattner
14c762d82f
add some #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 06:25:23 +00:00
Chris Lattner
98b7e612b2
MappedFile is dead, remove it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 06:20:44 +00:00
Chris Lattner
9ffd19af2e
Implement Path::MapInFilePages/UnMapFilePages on unix, which
...
provides fast MappedFile::getFile for large files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49034 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 06:16:24 +00:00
Chris Lattner
11da4cf25c
Reimplement MemoryBuffer::getFile with three enhancements:
...
1) stop using MappedFile.
2) if profitable use the sys::path::MapInFilePages api to
read the file.
3) otherwise fallback to read.
When sys::path::MapInFilePages is implemented, this provides
several benefits:
#1 : this avoids fragmenting memory for small files.
#2 : this avoids extraneous stat calls when the file size is known.
#3 : this only keeps the file descriptor open while reading the
file, not for the duration of the lifetime of the memory
buffer. This fixes a serious clang FD 'leak' problem.
I believe that this will work on a win32 machine, but I don't have
one to test on. I'd appreciate it if someone could check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 06:05:21 +00:00
Chris Lattner
799ed1053b
Stub out some sys::Path::MapInFilePages/UnMapFilePages methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 06:00:12 +00:00
Chris Lattner
7f6b447904
change the archive stuff to use MemoryBuffer instead of mappedfile.
...
MemoryBuffer is higher level and more closely matches the model
needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 04:26:46 +00:00
Chris Lattner
685412e92f
prune unneeded #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49028 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 04:00:45 +00:00
Chris Lattner
2fcebc5e63
rewrite SourceFile to be in terms of MemoryBuffer, not MappedFile.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49027 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:59:34 +00:00
Chris Lattner
23ffec8258
Make MappedFile::map return a const correct pointer, don't leak address space on Unix platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:49:38 +00:00
Chris Lattner
37db5d67f9
Remove the MappedFile::charBase member, rename base -> getBase() and
...
make getBase() return a const-correct pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49025 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:40:53 +00:00
Chris Lattner
a7750c1142
Change DiffFilesWithTolerance to be written in terms of MemoryBuffer,
...
not an mmapped file. This more closely matches its requirements and
provides an implicitly null terminated buffer, something this
routine had to emulate itself before.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49024 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:39:49 +00:00
Chris Lattner
cc56e64a59
add an accessor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49023 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:20:31 +00:00
Chris Lattner
bdbd2d710c
Remove MappedFile support for mapping files for write and exec
...
and shared. This complicates the design, is not used, and probably
doesn't even work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49022 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:10:22 +00:00
Chris Lattner
558755ce1a
remove extraneous #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49021 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 03:01:15 +00:00
Chris Lattner
0838923afb
add missing #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49020 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 02:58:05 +00:00
Evan Cheng
9845eb5b03
More soft fp fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49016 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 02:18:22 +00:00
Evan Cheng
db45d1c649
Pasto.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49014 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 02:00:09 +00:00
Evan Cheng
6ad2f930da
Add comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 01:51:26 +00:00
Evan Cheng
110cf48752
Unbreak ARM / Thumb soft FP support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49012 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 01:50:16 +00:00
Dale Johannesen
2ffbcaccd1
Accept 'y' constraint (MMX) in inline asm.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49011 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 00:57:48 +00:00
Chris Lattner
1213d67265
update comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49010 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 00:54:39 +00:00
Chris Lattner
540630f637
cleanup the MappedFile API and comments. This removes and updates
...
tons of out of date comments (really nothing throws here!) and fixes
some other fairly glaring issues: "size" used to return the size of
the file *and* change it, depending on how you called it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 00:53:25 +00:00
Chris Lattner
328c84aa99
remove DEFINING_FILE_FOR for MappedFile.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 00:35:55 +00:00