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
a0c1fc3bd3
Adding a Hexagon cell for segmented stacks, as they have been implemented for X86 and not Sparc...
...
Committed as obvious
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148237 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-16 13:16:05 +00:00
8d6796b796
Try to clarify a little how exception handling works.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148136 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-13 19:59:16 +00:00
bf5b13d07e
Revert accidental commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-12 23:06:28 +00:00
86b1a7d614
Fix the code that was WRONG.
...
The registers are placed into the saved registers list in the reverse order,
which is why the original loop was written to loop backwards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148064 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-12 23:05:03 +00:00
0ff100dec0
Fix dead link
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147721 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-07 04:11:27 +00:00
30c90c973a
test commit (verifyiing commit access)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147600 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-05 08:18:41 +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
5e33d21d7f
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147456 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-03 18:38:37 +00:00
cf6bd5a7c3
Correct spelling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147435 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-02 16:55:01 +00:00
45ba16588d
Happy new year 2012!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147395 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-01 08:16:56 +00:00
859c645310
Update the LangRef documentation: the codegen does support this instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147274 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-25 21:32:35 +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
ce16339930
The powers that be have decided that LLVM IR should now support 16-bit
...
"half precision" floating-point with a first-class type.
This patch adds basic IR support (but not codegen support).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146786 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-17 00:04:22 +00:00
adfc1ef14a
Fix spacing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146782 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16 23:42:35 +00:00
402e12a2f3
Update documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146781 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16 23:42:33 +00:00
473f95febe
Clarify and fix subprogram description.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146743 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-16 17:50:04 +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
2e9c7244b9
Add high level description of MachineInstr bundles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146589 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-14 21:32:14 +00:00
20536b5bca
Vectors are not aggregate types (see isAggregateType).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146561 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-14 15:44:20 +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
a349539f87
Use the example from clang, not the GCC frontend, which doesn't exist anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146461 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-13 01:07:07 +00:00
e5609abccb
llvm-build: Switch to using the common subdirectory list instead of
...
autodiscovery.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146437 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 22:45:59 +00:00
a3217165c6
llvm-build: Add sketchy support for preserving comments when using
...
--write-llvmbuild.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146434 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 22:45:35 +00:00
b4b54153ad
Hexagon backend support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146412 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 21:14:40 +00:00
4ab406d7fc
LLVMBuild: Remove trailing newline, which irked me.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146409 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 19:48:00 +00:00
48b0bbf930
Update the LangRef documentation for llvm.ctlz and llvm.cttz to specify
...
the behavior with the newly added flag for undefined results on a zero
input.
I'm terrible at documentation, so comments and suggestions welcome here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146361 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 04:36:04 +00:00
262396b644
Random cleanups. No description changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146288 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-09 22:41:40 +00:00
b583e42265
Revert r146041 et al. The FunctionPass doesn't take an address but the ID.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146268 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-09 19:11:02 +00:00
85f5a1ae39
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146234 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-09 02:00:44 +00:00
996ff1469f
Also pass in correct initializer here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146044 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-07 18:18:11 +00:00
465becf481
Correct initializer in example.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146041 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-07 18:02:44 +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
6805b56e77
Add documentation for machine-independent DFA packetizer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145988 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 23:12:42 +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
e1a2984847
Fix a subtle semantic issue with poison values that came up in
...
recent discussions. Poison can't make every value that depends on
it act in maximally undefined ways, because the optimizer may still
hoist code following the usual rules for undef. Make Poison invoke
its full undefined behavior only when it reaches an instruction with
externally visible side effects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145913 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 03:35:58 +00:00
5cdc51ea7b
Line up the comments in a code example.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145908 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 03:31:14 +00:00
bfb056dccf
Rename "Trap Values" to "Poison Values", to better reflect their
...
purpose, and to avoid ambiguity with other uses of the word "trap"
in LangRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145907 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06 03:18:47 +00:00
9bd5d044b7
Move 'returns_twice' definition into alphabetical place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145854 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-05 21:27:54 +00:00
1608769abe
Add support for vectors of pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145801 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-05 06:29:09 +00:00
8e1b12ae68
Fix table of contents.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145793 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-04 20:44:25 +00:00
b170e2de83
Add 'llvm.expect' intrinsic description.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145792 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-04 18:29:26 +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
aee0f453c5
More cleanups. No content change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145522 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30 21:52:43 +00:00
f6cc4c2d60
Minor cleanup. No content change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145521 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30 21:43:43 +00:00