Commit Graph

816 Commits

Author SHA1 Message Date
7739cad69d Add a new kind of MachineOperand: MO_RegisterMask.
Register masks will be used as a compact representation of large clobber
lists.  Currently, an x86 call instruction has some 40 operands
representing call-clobbered registers.  That's more than 1kB of useless
operands per call site.

A register mask operand references a bit mask of call-preserved
registers, everything else is clobbered.  The bit mask will typically
come from TargetRegisterInfo::getCallPreservedMask().

By abandoning ImplicitDefs for call-clobbered registers, it also becomes
possible to share call instruction descriptions between calling
conventions, and we can get rid of the WINCALL* instructions.

This patch introduces the new operand kind.  Future patches will add
RegMask support to target-independent passes before finally the fixed
clobber lists can be removed from call instruction descriptions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148250 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-16 19:22:00 +00:00
d9e5c764bf Freeze reserved registers before starting register allocation.
The register allocators don't currently support adding reserved
registers while they are running.  Extend the MRI API to keep track of
the set of reserved registers when register allocation started.

Target hooks like hasFP() and needsStackRealignment() can look at this
set to avoid reserving more registers during register allocation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147577 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-05 00:26:49 +00:00
7559766c63 Add a few lines to the release notes:
1. pointer-vector
2. type legalizer changes and vector-select
3. X86 ISA changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-20 08:02:50 +00:00
eb4c70b9c4 Add a line to ReleaseNotes for half float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146939 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-20 01:10:56 +00:00
9897c622e0 Remove a register class that can just as well be synthesized.
Add the new TableGen register class synthesizer feature to the release
notes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146875 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-19 16:53:40 +00:00
f5bb45f895 Note ARM constant island alignment in the release notes.
The command line option should be removed, but not until the feature has
gotten a lot of testing. The ARMConstantIslandPass tends to have subtle
bugs that only show up after a while.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146739 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16 16:07:41 +00:00
28681863af Add a blurb about MachineInstr bundling support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146603 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-14 22:57:45 +00:00
1ff33e52c3 mention AddressSanitizer in 3.1 release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146505 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-13 19:46:24 +00:00
21e1b7a13c Rip llvm 3.0 out of the release notes, making room for LLVM 3.1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146493 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-13 17:55:30 +00:00
f8de54f37b Make Release Notes HTML 4.01 Strict.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 23:33:07 +00:00
44762ca82f Add link to builtin_expect in Release Notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145979 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 22:31:27 +00:00
93e9d3abe5 Add link to llvm.expect in Release Notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 20:56:36 +00:00
9b15ba934c fix broken tag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145590 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-01 17:25:28 +00:00
65fa507e0b Remove an XXX which hasn't been fixed yet. It's too late now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145518 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30 20:53:52 +00:00
0fcb4318ea Mention that -O4 does result in more optimization when used with
-fplugin-arg-dragonegg-enable-gcc-optzns, though it usually isn't
a win.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145486 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30 08:46:05 +00:00
6e7a13db85 Add a link to Bill's blog post.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145419 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 19:24:11 +00:00
bdef6feef4 Release notes for segmented stacks.
Patch by Sanjoy Das.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145416 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 19:08:23 +00:00
e6e7362533 Remove content that has been moved to Clang release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145362 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 02:04:48 +00:00
f0a6605b84 Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145361 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 02:04:44 +00:00
cc966de237 Add a link from the LLVM release notes to the Clang release notes.
I suspect we could profitably remove/move some of the bullet points
under Clang here to the Clang notes in order to keep things clean on
both sides. Unless I hear objections I'll start doing that once folks
have read over the Clang notes a bit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145340 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-29 00:32:43 +00:00
7ca7b53804 Expand the part about CFI a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145324 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 23:55:49 +00:00
54d3b83929 Merging two bullet points into one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145287 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 22:07:12 +00:00
f7fea72e16 Add OpenCL blurb to release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145270 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 20:04:12 +00:00
60f790c329 Add object file related release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145254 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 18:20:09 +00:00
87f95dc852 Explain what ExeDepsFix does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145253 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 18:03:11 +00:00
09e61ca6af Add a blurb about the new ExecutionDepsFix pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145220 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-28 01:46:19 +00:00
7c224460b6 dwarf parsing stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145207 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 22:39:23 +00:00
d6cc2c2092 first pass of writing complete!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145206 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 22:36:22 +00:00
1cc489b71b arm and carve out a place ot mention segmented stacks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145204 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 22:12:32 +00:00
2f20602de3 optimize, mc, x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145200 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 22:03:34 +00:00
064caf9f07 some writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145198 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 21:30:28 +00:00
1c80fbfeca distribute various bullets to different sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145196 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 20:51:47 +00:00
70e2201628 rewrite the known problems section. Including a short list of individual bugs per target isn't particularly useful. Link to the target features matrix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145193 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 19:38:20 +00:00
4f0fe43fa0 move the detailed information about the EH rewrite to a comment, Bill is
blog'izing it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145192 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 19:26:30 +00:00
9e89671976 tweak subprojects' section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145191 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 18:53:41 +00:00
1ab8ce9372 some random notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145190 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 18:47:37 +00:00
5a1731daa7 add some final random notes, I've completed my pass over all the commits.
I'll work on turning this into something intelligible tomorrow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 08:32:32 +00:00
f51572aaf9 add some notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145173 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 07:37:53 +00:00
fbe910e7f4 remove asmparsing and documentation support for "volatile load", which was only produced by LLVM 2.9 and earlier. LLVM 3.0 and later prefers "load volatile".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145172 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 06:56:53 +00:00
8ddff91282 some notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 06:24:49 +00:00
5130d4eab6 add some notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145163 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-27 05:47:57 +00:00
933a78c0d9 Move the branch probability blurb into the optimizer section. Add a minimal bullet for AVX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145145 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-26 11:14:54 +00:00
553284e69a Added Objective-C and libc++ details to the 3.0 release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145144 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-26 10:56:17 +00:00
7c5025bbee shpelling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145138 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-25 21:26:00 +00:00
1e9ff6df14 Remove ZooLib from the projects list.
I don't see how the project is using LLVM and we really can't list every user of
the clang analyzer. Sorry.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145137 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-25 21:03:06 +00:00
cc08977d14 add a user
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145136 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-25 20:36:17 +00:00
6a007d11e3 add some notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145135 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-25 20:33:27 +00:00
adb417afa6 add faust
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145134 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-25 20:28:16 +00:00
2552de030b Add a few notes for ARM and a blurb about the MCJIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145118 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-24 00:49:21 +00:00
c78daaf0da x86/windows issues fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144878 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-17 01:42:23 +00:00