MLBEDSW-2377: Greedy allocator improvement

Allocate live ranges with longer life time first.
On average this gives better memory usage.

Change-Id: Id89e9e36a944169a2f10ce7f6e869397ef0abaf0
Signed-off-by: Louis Verhaard <louis.verhaard@arm.com>
diff --git a/ethosu/vela/tensor_allocation.py b/ethosu/vela/tensor_allocation.py
index 2d464ee..d53babc 100644
--- a/ethosu/vela/tensor_allocation.py
+++ b/ethosu/vela/tensor_allocation.py
@@ -91,7 +91,7 @@
             print("allocation for", mem_area, "- constant tensors in", sg.placement.name, "subgraph(s)")
         else:
             print("allocation for", mem_area, "- non-constant tensors in Cpu and Npu subgraphs")
-
+        mem_usage = 0
         for start_time, start, end, name, end_time in sorted(
             (
                 lr.start_time,
@@ -104,6 +104,8 @@
         ):
             name = name.replace("\x00", "")
             print("%9d: %#12x - %#12x: %3d - %3d %s" % ((end - start), start, end, start_time, end_time, name))
+            mem_usage = max(mem_usage, end)
+        print("Memory usage: {} ({:#x}) bytes / {:.1f} KB".format(mem_usage, mem_usage, mem_usage / 1024))
         print()
 
     if show_minimum_possible_allocation and mem_area == MemArea.Sram: