aboutsummaryrefslogtreecommitdiff
path: root/llvm/docs
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/docs')
-rw-r--r--llvm/docs/CommandGuide/llvm-size.rst7
-rw-r--r--llvm/docs/GettingInvolved.rst14
-rw-r--r--llvm/docs/GlobalISel/InstructionSelect.rst18
3 files changed, 30 insertions, 9 deletions
diff --git a/llvm/docs/CommandGuide/llvm-size.rst b/llvm/docs/CommandGuide/llvm-size.rst
index f244769..12e7c58 100644
--- a/llvm/docs/CommandGuide/llvm-size.rst
+++ b/llvm/docs/CommandGuide/llvm-size.rst
@@ -41,6 +41,13 @@ OPTIONS
as a separate section entry for ``sysv`` output. If not specified, these
symbols are ignored.
+.. option:: --exclude-pagezero
+
+ Do not include the ``__PAGEZERO`` segment when calculating size information
+ for Mach-O files. The ``__PAGEZERO`` segment is a virtual memory region used
+ for memory protection that does not contribute to actual size, and excluding
+ can provide a better representation of actual size.
+
.. option:: -d
Equivalent to :option:`--radix` with a value of ``10``.
diff --git a/llvm/docs/GettingInvolved.rst b/llvm/docs/GettingInvolved.rst
index 72716fa..f7e1374 100644
--- a/llvm/docs/GettingInvolved.rst
+++ b/llvm/docs/GettingInvolved.rst
@@ -42,7 +42,7 @@ LLVM welcomes contributions of all kinds. To get started, please review the foll
in the LLVM system.
:doc:`BugLifeCycle`
- Describes how bugs are reported, triaged and closed.
+ Describes how bugs are reported, triaged, and closed.
:doc:`CodingStandards`
Details the LLVM coding standards and provides useful information on writing
@@ -108,7 +108,7 @@ The :doc:`CodeOfConduct` applies to all these forums and mailing lists.
`Commits Archive (llvm-commits)`__
This list contains all commit messages that are made when LLVM developers
commit code changes to the repository. It also serves as a forum for
- patch review (i.e. send patches here). It is useful for those who want to
+ patch review (i.e., send patches here). It is useful for those who want to
stay on the bleeding edge of LLVM development. This list is very high
volume.
@@ -121,7 +121,7 @@ The :doc:`CodeOfConduct` applies to all these forums and mailing lists.
.. __: http://lists.llvm.org/pipermail/llvm-bugs/
`LLVM Announcements`__
- If you just want project wide announcements such as releases, developers meetings, or blog posts, then you should check out the Announcement category on LLVM Discourse.
+ If you just want project-wide announcements such as releases, developers meetings, or blog posts, then you should check out the Announcement category on LLVM Discourse.
.. __: https://discourse.llvm.org/c/announce/46
@@ -473,7 +473,7 @@ join one in your city. Or start a new one if there is none:
Community wide proposals
------------------------
-Proposals for massive changes in how the community behaves and how the work flow
+Proposals for large-scale changes in how the community behaves and how the work flow
can be better.
.. toctree::
@@ -518,7 +518,7 @@ also be seen inline below:
Note that the web view of the LLVM community calendar shows events in
Coordinated Universal Time (UTC). If you use Google Calendar, consider
subscribing to it with the + button in the bottom-right corner to view all
-events in your local timezone alongside your other calendars.
+events in your local time zone alongside your other calendars.
.. _llvm-community-calendar-host-guidance:
@@ -554,9 +554,9 @@ An example invite looks as follows
This event is a meetup for all developers of LLDB. Meeting agendas are posted
on discourse before the event.
- Attendees are required to adhere to the LLVM Code of Conduct
+ Attendees must adhere to the LLVM Code of Conduct
(https://llvm.org/docs/CodeOfConduct.html). For any Code of Conduct reports,
- please contact the organizers, and also email conduct@llvm.org.
+ please contact the organizers and also email conduct@llvm.org.
Agenda/Meeting Minutes: Link to minutes
diff --git a/llvm/docs/GlobalISel/InstructionSelect.rst b/llvm/docs/GlobalISel/InstructionSelect.rst
index 9798ae7..5513824 100644
--- a/llvm/docs/GlobalISel/InstructionSelect.rst
+++ b/llvm/docs/GlobalISel/InstructionSelect.rst
@@ -5,8 +5,22 @@ InstructionSelect
-----------------
This pass transforms generic machine instructions into equivalent
-target-specific instructions. It traverses the ``MachineFunction`` bottom-up,
-selecting uses before definitions, enabling trivial dead code elimination.
+target-specific instructions.
+
+The legacy instruction selector, SelectionDAG, iterated over each function's
+basic block and constructed a dataflow graph. Every backend defines
+tree patterns in the ``XXXInstrInfo.td``. The legacy selector started
+at the bottom and replaced the SDNodes greedily.
+
+The GlobalISel's instruction selector traverses the ``MachineFunction``
+bottom-up, selecting uses before definitions, enabling trivial dead code
+elimination. It does that by iterating over the basic blocks in post-order.
+Each gMIR instruction is then replaced by a MIR instruction when a matching
+pattern is found. So, when there is a 1:1 mapping between gMIR and MIR, where
+is the benefit of the global scope? Even in the case of a 1:1 mapping,
+GlobalISel includes a combiner that can match and fuse multiple gMIR
+instructions. The scope of the combination is not limited to a basic block,
+but can extend across the entire function.
.. _api-instructionselector: