BUILD 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. # Exceptions. See /LICENSE for license information.
  3. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. load("@rules_cc//cc:defs.bzl", "cc_library")
  5. load("//bazel/sh_run:rules.bzl", "glob_sh_run")
  6. load("//testing/file_test:rules.bzl", "file_test")
  7. package(default_visibility = ["//visibility:public"])
  8. cc_library(
  9. name = "lower",
  10. srcs = ["lower.cpp"],
  11. hdrs = ["lower.h"],
  12. deps = [
  13. ":context",
  14. "//toolchain/sem_ir:file",
  15. "@llvm-project//llvm:Core",
  16. "@llvm-project//llvm:Support",
  17. ],
  18. )
  19. cc_library(
  20. name = "context",
  21. srcs = [
  22. "file_context.cpp",
  23. "function_context.cpp",
  24. ] +
  25. # Glob handler files to avoid missing any.
  26. glob([
  27. "handle*.cpp",
  28. ]),
  29. hdrs = [
  30. "file_context.h",
  31. "function_context.h",
  32. ],
  33. deps = [
  34. "//common:check",
  35. "//common:vlog",
  36. "//toolchain/sem_ir:file",
  37. "//toolchain/sem_ir:node",
  38. "//toolchain/sem_ir:node_kind",
  39. "@llvm-project//llvm:Core",
  40. "@llvm-project//llvm:Support",
  41. ],
  42. )
  43. file_test(
  44. name = "lower_file_test",
  45. srcs = ["lower_file_test.cpp"],
  46. tests = glob(["testdata/**/*.carbon"]),
  47. deps = [
  48. "//toolchain/driver:driver_file_test_base",
  49. "@llvm-project//llvm:Support",
  50. ],
  51. )
  52. glob_sh_run(
  53. args = [
  54. "$(location //toolchain/driver:carbon)",
  55. "compile",
  56. "--phase=lower",
  57. "--dump-llvm-ir",
  58. ],
  59. data = ["//toolchain/driver:carbon"],
  60. file_exts = ["carbon"],
  61. )
  62. glob_sh_run(
  63. args = [
  64. "$(location //toolchain/driver:carbon)",
  65. "-v",
  66. "compile",
  67. "--phase=lower",
  68. ],
  69. data = ["//toolchain/driver:carbon"],
  70. file_exts = ["carbon"],
  71. run_ext = "verbose",
  72. )