mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-04 10:10:08 +01:00
formatting for black
This commit is contained in:
@@ -160,10 +160,13 @@ class ParserX86Intel(ParserX86):
|
|||||||
binary_number = pp.Combine(pp.Word("01") + pp.CaselessLiteral("B"))
|
binary_number = pp.Combine(pp.Word("01") + pp.CaselessLiteral("B"))
|
||||||
octal_number = pp.Combine(pp.Word("01234567") + pp.CaselessLiteral("O"))
|
octal_number = pp.Combine(pp.Word("01234567") + pp.CaselessLiteral("O"))
|
||||||
decimal_number = pp.Combine(pp.Optional(pp.Literal("-")) + pp.Word(pp.nums))
|
decimal_number = pp.Combine(pp.Optional(pp.Literal("-")) + pp.Word(pp.nums))
|
||||||
hex_number_suffix = pp.Combine(pp.Word(pp.hexnums) + (pp.CaselessLiteral("H") ^ pp.CaselessLiteral("R")))
|
hex_number_suffix = pp.Combine(
|
||||||
|
pp.Word(pp.hexnums) + (pp.CaselessLiteral("H") ^ pp.CaselessLiteral("R"))
|
||||||
|
)
|
||||||
hex_number_0x = pp.Combine(
|
hex_number_0x = pp.Combine(
|
||||||
pp.Optional(pp.Literal("-")) + pp.Literal("0x") + pp.Word(pp.hexnums))
|
pp.Optional(pp.Literal("-")) + pp.Literal("0x") + pp.Word(pp.hexnums)
|
||||||
hex_number = (hex_number_0x ^ hex_number_suffix)
|
)
|
||||||
|
hex_number = hex_number_0x ^ hex_number_suffix
|
||||||
float_number = pp.Combine(
|
float_number = pp.Combine(
|
||||||
pp.Optional(pp.Literal("-")) + pp.Word(pp.nums) + pp.Word(".", pp.nums)
|
pp.Optional(pp.Literal("-")) + pp.Word(pp.nums) + pp.Word(".", pp.nums)
|
||||||
).setResultsName("value")
|
).setResultsName("value")
|
||||||
|
|||||||
@@ -67,9 +67,7 @@ class KernelDG(nx.DiGraph):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def get_real_line_number(line_number):
|
def get_real_line_number(line_number):
|
||||||
return (
|
return (
|
||||||
int(line_number + 0.125)
|
int(line_number + 0.125) if KernelDG.is_load_line_number(line_number) else line_number
|
||||||
if KernelDG.is_load_line_number(line_number)
|
|
||||||
else line_number
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def create_DG(self, kernel, flag_dependencies=False):
|
def create_DG(self, kernel, flag_dependencies=False):
|
||||||
@@ -100,9 +98,7 @@ class KernelDG(nx.DiGraph):
|
|||||||
loads[instruction_form.line_number] = load_line_number
|
loads[instruction_form.line_number] = load_line_number
|
||||||
dg.add_node(load_line_number)
|
dg.add_node(load_line_number)
|
||||||
dg.nodes[load_line_number]["instruction_form"] = InstructionForm(
|
dg.nodes[load_line_number]["instruction_form"] = InstructionForm(
|
||||||
mnemonic="_LOAD_",
|
mnemonic="_LOAD_", line=instruction_form.line, line_number=load_line_number
|
||||||
line=instruction_form.line,
|
|
||||||
line_number=load_line_number
|
|
||||||
)
|
)
|
||||||
# and set LD latency as edge weight
|
# and set LD latency as edge weight
|
||||||
dg.add_edge(
|
dg.add_edge(
|
||||||
@@ -423,8 +419,7 @@ class KernelDG(nx.DiGraph):
|
|||||||
is_memory_read = self.parser.is_reg_dependend_of(register, src.base)
|
is_memory_read = self.parser.is_reg_dependend_of(register, src.base)
|
||||||
if src.index is not None and isinstance(src.index, RegisterOperand):
|
if src.index is not None and isinstance(src.index, RegisterOperand):
|
||||||
is_memory_read = (
|
is_memory_read = (
|
||||||
self.parser.is_reg_dependend_of(register, src.index)
|
self.parser.is_reg_dependend_of(register, src.index) or is_memory_read
|
||||||
or is_memory_read
|
|
||||||
)
|
)
|
||||||
for_load = is_memory_read
|
for_load = is_memory_read
|
||||||
is_read = is_read or is_memory_read
|
is_read = is_read or is_memory_read
|
||||||
@@ -614,7 +609,7 @@ class KernelDG(nx.DiGraph):
|
|||||||
(latency, list(deps))
|
(latency, list(deps))
|
||||||
for latency, deps in groupby(lcd, lambda dep: lcd[dep]["latency"])
|
for latency, deps in groupby(lcd, lambda dep: lcd[dep]["latency"])
|
||||||
),
|
),
|
||||||
reverse=True
|
reverse=True,
|
||||||
)
|
)
|
||||||
node_colors = {}
|
node_colors = {}
|
||||||
edge_colors = {}
|
edge_colors = {}
|
||||||
@@ -637,17 +632,16 @@ class KernelDG(nx.DiGraph):
|
|||||||
edge_colors[u, v] = color
|
edge_colors[u, v] = color
|
||||||
max_color = min(11, colors_used)
|
max_color = min(11, colors_used)
|
||||||
colorscheme = f"spectral{max(3, max_color)}"
|
colorscheme = f"spectral{max(3, max_color)}"
|
||||||
graph.graph["node"] = {"colorscheme" : colorscheme}
|
graph.graph["node"] = {"colorscheme": colorscheme}
|
||||||
graph.graph["edge"] = {"colorscheme" : colorscheme}
|
graph.graph["edge"] = {"colorscheme": colorscheme}
|
||||||
for n, color in node_colors.items():
|
for n, color in node_colors.items():
|
||||||
if "style" not in graph.nodes[n]:
|
if "style" not in graph.nodes[n]:
|
||||||
graph.nodes[n]["style"] = "filled"
|
graph.nodes[n]["style"] = "filled"
|
||||||
else:
|
else:
|
||||||
graph.nodes[n]["style"] += ",filled"
|
graph.nodes[n]["style"] += ",filled"
|
||||||
graph.nodes[n]["fillcolor"] = color
|
graph.nodes[n]["fillcolor"] = color
|
||||||
if (
|
if (max_color >= 4 and color in (1, max_color)) or (
|
||||||
(max_color >= 4 and color in (1, max_color))
|
max_color >= 10 and color in (1, 2, max_color - 1, max_color)
|
||||||
or (max_color >= 10 and color in (1, 2, max_color - 1 , max_color))
|
|
||||||
):
|
):
|
||||||
graph.nodes[n]["fontcolor"] = "white"
|
graph.nodes[n]["fontcolor"] = "white"
|
||||||
for (u, v), color in edge_colors.items():
|
for (u, v), color in edge_colors.items():
|
||||||
|
|||||||
@@ -234,9 +234,7 @@ class TestParserX86Intel(unittest.TestCase):
|
|||||||
self.assertEqual(parsed_16.operands[0], RegisterOperand(name="XMM0"))
|
self.assertEqual(parsed_16.operands[0], RegisterOperand(name="XMM0"))
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
parsed_16.operands[1],
|
parsed_16.operands[1],
|
||||||
MemoryOperand(
|
MemoryOperand(base=RegisterOperand(name="RAX"), offset=ImmediateOperand(value=291)),
|
||||||
base=RegisterOperand(name="RAX"), offset=ImmediateOperand(value=291)
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_parse_line(self):
|
def test_parse_line(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user