Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
peephole
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
Taddeüs Kroes
peephole
Commits
8ee507e2
Commit
8ee507e2
authored
13 years ago
by
Taddeus Kroes
Browse files
Options
Downloads
Patches
Plain Diff
Added report folder to structure.
parent
a7c3734d
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
report/report.tex
+3
-21
3 additions, 21 deletions
report/report.tex
with
3 additions
and
21 deletions
report/report.tex
+
3
−
21
View file @
8ee507e2
...
...
@@ -180,27 +180,6 @@ statements'', the rest of the block is traversed while looking for usage of the
\texttt
{
move
}
's destination address
\texttt
{
x
}
. These usages are replaced by
usages of
\texttt
{
y
}
, until either
\texttt
{
x
}
or
\texttt
{
y
}
is re
-
assigned.
%Copy propagation `unpacks' a move instruction, by replacing its destination
%address with its source address in the code following the move instruction.
%
%This is not a direct optimization, but this does allow for a more effective
%dead code elimination.
%
%The code of the block is traversed linearly. If a move operation is
%encountered, the source and destination address of this move are stored. If a
%normal operation with a source and a destination address are found, a number of
%checks are performed.
%
%The first check is whether the destination address is stored as a destination
%address of a move instruction. If so, this move instruction is no longer valid,
%so the optimizations can not be done. Otherwise, continue with the second
%check.
%
%In the second check, the source address is compared to the destination
%addresses of all still valid move operations. If these are the same, in the
%current operation the found source address is replaced with the source address
%of the move operation.
An example would be the following:
\begin
{
verbatim
}
move
$
regA,
$
regB move
$
regA,
$
regB
...
...
@@ -263,12 +242,15 @@ Our code is provided with this report, and is also available on GitHub: \\
\subsection
{
Structure
}
The folder structure of out implementation is as follows:
\begin
{
itemize
}
\item
\texttt
{
.
}
\begin
{
itemize
}
\item
\texttt
{
benchmarks
/
}
\\
All benchmark files and their assembly versions
(
both unoptimized and
optimized
)
.
\item
\texttt
{
report
/
}
\\
Report files.
\item
\texttt
{
src
/
}
\begin
{
itemize
}
\item
\texttt
{
copy
\_
propagation.py
}
\\
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment