[llvm-commits] [gcc-plugin] r82768 - /gcc-plugin/trunk/TODO
Duncan Sands
baldrick at free.fr
Fri Sep 25 08:20:21 PDT 2009
Author: baldrick
Date: Fri Sep 25 10:20:21 2009
New Revision: 82768
URL: http://llvm.org/viewvc/llvm-project?rev=82768&view=rev
Log:
Update the TODO list.
Modified:
gcc-plugin/trunk/TODO
Modified: gcc-plugin/trunk/TODO
URL: http://llvm.org/viewvc/llvm-project/gcc-plugin/trunk/TODO?rev=82768&r1=82767&r2=82768&view=diff
==============================================================================
--- gcc-plugin/trunk/TODO (original)
+++ gcc-plugin/trunk/TODO Fri Sep 25 10:20:21 2009
@@ -15,18 +15,12 @@
that there's only one source file and that it's called llvm-target.cpp.
Currently the target directory (eg: i386) is calculated from the target triple
-(eg: x86_64-unknown-linux-gnu) using gcc's config.gcc script. This should be
-done from a configure script, rather from the Makefile using the get_arch_dir
-wrapper.
-
-The Makefile needs to know the LLVM target name (eg: x86) in order to pass it
-to llvm-config so as to get the libraries to link with for target codegen.
-This should be calculated in a configure script (presumably by a small program
-that uses the LLVM triple facilities to calculate it). If we know this, then
-we might as well rename target directories like i386/ to x86/ instead, and
-eliminate use of gcc's config.gcc script. This also means that LLVM_TARGET_NAME
-could be defined from the Makefile rather than being specified in llvm-target.h.
-Maybe LLVM_TARGET_INTRINSIC_PREFIX could go too.
+(eg: x86_64-unknown-linux-gnu) using the "target" tool. This should be done
+from a configure script, rather from the Makefile.
+
+Define LLVM_TARGET_NAME from the Makefile rather than being specified in
+llvm-target.h. Maybe LLVM_TARGET_INTRINSIC_PREFIX could go too. An annoyance
+is that the target tool returns "x86" while what is needed is "X86".
Teach the build system that the plugin needs to be rebuilt if any of the bits of
LLVM/gcc it depends on changes.
@@ -40,34 +34,19 @@
to /dev/null, but it would be more efficient to teach GCC to not produce any in
the first place). Investigate.
-Consider having DECL_LLVM and friends store values for trees local to a
-function in a separate map that can be cleared once the function has been
-emitted. Determining which trees are local (LABEL_DECL, VAR_DECL but not
-static etc) should be pretty quick, so the cost of routing to the right map
-should be insignificant, while having a much smaller map for globals could
-be a win.
-
Consider using separate caches for types and globals.
-Thanks to gimple being in SSA form, many local variables are not used.
-However they are still in the local_decls list, so we output them all,
-pointlessly, wasting time and memory. Consider emitting local variables
-on demand instead.
-
Correctness
-----------
-If an ssa name refers to a global (can this happen), the SSANames map might
+If an ssa name refers to a global (can this happen?), the SSANames map might
need to be updated if the target is altered by changeLLVMConstant.
An ssa name can be a complex number, causing the plugin to crash. Maybe should
consider complex numbers to be scalars rather than aggregates. Would this get
in the way of sroa?
-If the initializer for a static variable contains the address of a label then
-we crash.
-
Features
--------
More information about the llvm-commits
mailing list